Code Authors: Mark E. Pepin Contact: pepinme@gmail.com Institution: Heidelberg University Hospital Location: 669 Neuenheimer Feld, Institute for Experimental Cardiology, 69120 Heidelberg, Germany
Define the parameters used, along with the conditions required for the current analysis. This segment must be modified for each analysis performed.
##Set the experimental conditions [MUST DO THIS MANUALLY]
DIABETES=c("ND", "T2D") #Should define the reference group first
ISCHEMIA=c("NICM", "ICM")
RACE=c("Caucasian_American", "African_American") #, "Asian_American", "Eastern_African"
ISO=c("NONE", "DOB")
STATISTIC = 0.05 #P statistic threshold used in this combination.
VARIABLE = RACE
COMPARISON= paste0(VARIABLE[2], ".vs.", VARIABLE[1])
# Candidate Gene Selection (RNA-sequencing) EDIT THIS LIST BASED ON INTERESTS.
GENES=c("DNMT3A", "GADD45B", "HADH", "HK1", "HK2", "PFKM", "ALDOA", "GAPDH", "ENO3", "TP53", "MYC", "MDH1", "NDUFA4")
VAR1="Race"
VAR2="Diabetes"
# Single Bar Graph
GENES=c("DNMT3A", "MYH6", "SDHC", "GADD45B")
# Pathway Gene Screening
GENE.Pathway<-read.csv("../2_Input/Gene.Sets/Oxphos.KEGG.csv", header = F) #Can alter the gene pathway (just change path)
colnames(GENE.Pathway)<-"external_gene_name"
# Create Output Folder Structure
ifelse(!dir.exists(file.path(paste0("../3_Output/"))), dir.create(file.path(paste0("../3_Output/"))), FALSE)
## [1] FALSE
ifelse(!dir.exists(file.path(paste0("../3_Output/1_RNA/"))), dir.create(file.path(paste0("../3_Output/1_RNA/"))), FALSE)
## [1] FALSE
ifelse(!dir.exists(file.path(paste0("../3_Output/2_Methyl/"))), dir.create(file.path(paste0("../3_Output/2_Methyl/"))), FALSE)
## [1] FALSE
ifelse(!dir.exists(file.path(paste0("../3_Output/3_Combined/"))), dir.create(file.path(paste0("../3_Output/3_Combined/"))), FALSE)
## [1] FALSE
if (!require("pacman")) install.packages("pacman")
pacman::p_load(dplyr, Hmisc, openxlsx, corrplot, RColorBrewer, kableExtra, ggplot2, gridExtra, ggpubr, ggsignif, DESeq2, data.table, GenomicFeatures, biomaRt, Haplin, pheatmap, calibrate, ggrepel, tidyr, gtools)
The first task in this project was to verify that the heart failure patients from which the cardiac tissues were obtained allowed for a simple comparison (i.e. not requiring multiple regression) by both racial and etiologic factors, as a means of examining the experimental subjects for confounding variables.
library(openxlsx)
library(dplyr)
library(Hmisc)
library(corrplot)
library(RColorBrewer)
options(kableExtra.latex.load_packages = FALSE)
library(kableExtra)
Patient_Data <- openxlsx::read.xlsx("../2_Input/1_Patient/colData_CHAAMPS.FINAL.xlsx", sheet = "Matrix", rowNames = T)
Patient_Data<-as.data.frame(Patient_Data)
# Patient_Data<-dplyr::select(Patient_Data, -Syst.PA, -PCWP,-RA)
Patient_Data<-Patient_Data[complete.cases(Patient_Data),]
# # Print the table for use
# Patient_Data %>% kable(#format="latex",
# align="c",
# booktabs=T,
# caption="Patient Characteristics") %>%
# kable_styling(latex_options=c("striped",
# "condensed",
# "repeat_header"))
# Format for Correlation
Patient_corr<-data.matrix(Patient_Data)
cor.r<-cor(Patient_corr)
paletteLength <- 100
myColor <- colorRampPalette(c("dodgerblue4", "white", "brown4"))(paletteLength)
p.mat<-cor.mtest(cor.r)$p
rownames(p.mat)<-rownames(cor.r)
colnames(p.mat)<-colnames(cor.r)
corrplot(cor.r,
order="original",
type="full",
method = "square",
outline=FALSE,
col = myColor,
tl.cex=0.7,
tl.col="black",
p.mat=p.mat,
sig.level = 0.05,
insig="blank",
addgrid.col = NA)
Correlation Matrix of Patient Characteristics. All data were obtained from electronic medical records and de-identified in accordance with the UAB Institutional Review Board requirements.
pdf(file=paste0("../3_Output/_Patient/Patient.Correlation.pdf"))
corrplot(cor.r,
order="original",
type="full",
method = "square",
outline=FALSE,
col = myColor,
tl.cex=0.7,
tl.col="black",
p.mat=p.mat,
sig.level = 0.05,
insig="blank",
addgrid.col = NA)
dev.off()
## quartz_off_screen
## 2
To examine the changes of individual variables, we used bar graphs according to patients’ self-identified race.
#####################################################
# Bar Graphs of the PHI
######################################################
#Location where graphs will be saved
library(dplyr)
library(ggplot2)
library(ggpubr)
library(gridExtra)
VAR2="Race"
PARAMS=c("Age", "Creatinine", "Blood.Glucose", "LV.EF")
ifelse(!dir.exists(file.path(paste0("../3_Output/_Patient/Candidates/"))), dir.create(file.path(paste0("../3_Output/_Patient/Candidates/"))), FALSE)
## [1] FALSE
# Patient_Data<-openxlsx::read.xlsx("../2_Input/_Patient/Patients_Health.Info.xlsx", sheet = "Matrix_Pre.v.CON", rowNames = T)
# Patient_Data$Sample_ID<-rownames(Patient_Data)
# Patient_Data<-dplyr::select(Patient_Data, -Sex)
# Patient_ALL<-reshape(Patient_Data, varying = 14:29, sep = "_", direction = "long")
# Patient_ALL<-dplyr::rename(Patient_ALL, Timing=time)
colData_all<-openxlsx::read.xlsx("../2_Input/1_Patient/colData_CHAAMPS.FINAL.xlsx", sheet = "Summary", rowNames = T, startRow = 2)
graph_info<-subset(colData_all, Race %in% RACE)
## create a function that converts factors to numeric
asNumeric=function(x){as.numeric(as.character(x))}
factorsNumeric=function(d){modifyList(d, lapply(d[, sapply(d, is.factor)], asNumeric))}
##
graph_info<-factorsNumeric(graph_info)
# graph_info$Response<-factor(graph_info$Response, levels = c("CON", "NR", "R"))
graph_info$Ischemia<-factor(graph_info$Ischemia, levels = c("NICM", "ICM"))
graph_info$Diabetes<-factor(graph_info$Diabetes, levels = c("ND", "T2D"))
graph_info$HTN<-factor(graph_info$HTN, levels = c("N", "Y"))
groupsize<-graph_info %>% group_by(Race) %>% tally()
#Define function for mean and standard deviation for each group
data_summary <- function(data, varname, groupnames){
require(plyr)
summary_func <- function(x, col){
c(mean = mean(x[[col]], na.rm=TRUE),
sd = sd(x[[col]], na.rm=TRUE))
}
data_sum<-ddply(data, groupnames, .fun=summary_func,
varname)
data_sum <- rename(data_sum, c("mean" = varname))
return(data_sum)
}
########################################################
plotlist = list()
for (i in seq_along(PARAMS)){
PARAM<-as.name(PARAMS[i]) #define a "name" for the variable
ds <- data_summary(graph_info, varname=PARAM, groupnames=c(VAR2))
ds<-dplyr::left_join(ds, groupsize)
ds<-dplyr::mutate(ds, upper=ds[,2]+(sd/sqrt(n-1)))
patient<-ggplot(ds, aes_string(x=VAR2, y=PARAMS[i], fill=VAR2)) +
geom_bar(stat="identity", color="black",
position=position_dodge()) +
geom_errorbar(aes_string(ymin=PARAMS[i], ymax="upper"), width=.2,
position=position_dodge(.9))
patient_plot<-patient+labs(title=paste0("Patient Data - ", PARAMS[i]), x=VAR2, fill=VAR2)+
theme_classic2(base_size = 10) +
scale_fill_manual(values=c('black', "white", "#999999")) +
stat_compare_means(mapping = aes_string(x=VAR2, y=PARAMS[i]), data = graph_info,label = "p.signif")
pdf(file=paste0("../3_Output/_Patient/Candidates/", PARAMS[i], "_", VAR2, "_barplot.pdf"), width = 3.5, height = 2.5)
print(patient_plot)
dev.off()
plotlist[[i]] = patient_plot
}
t<-marrangeGrob(grobs = plotlist, legend, nrow=3, ncol=2)
ggsave(paste0("../3_Output/_Patient/Candidates/_barplots_", VAR2, ".pdf"), t, width = 6, height = 7)
##########################################################
#Boxplot
##########################################################
plotlist = list()
for (i in seq_along(PARAMS)){
PARAM<-as.name(PARAMS[i]) #define a "name" for the variable
ds <- data_summary(graph_info, varname=PARAM, groupnames=c(VAR2))
ds<-dplyr::left_join(ds, groupsize)
ds<-dplyr::mutate(ds, upper=ds[,2]+(sd/sqrt(n-1)))
g<-ggplot(graph_info, aes_string(x=VAR2, y=PARAMS[i], fill=VAR2)) +
geom_boxplot() + stat_compare_means(label = "p.signif")
g_plot<-g+labs(title=paste0("Patient Data - ", PARAMS[i]), x=VAR2)+
theme_classic2(base_size = 10) +
scale_fill_manual(values=c('black', "white", "#999999")) + ylim(NA, max(ds$upper+.25*(ds$upper)))
pdf(file=paste0("../3_Output/_Patient/Candidates/", PARAMS[i], "_", VAR2, "_boxplot.pdf"), width = 3.5, height = 2.5)
print(g_plot)
dev.off()
plotlist[[i]] = g_plot
}
t<-marrangeGrob(grobs = plotlist, legend, nrow=3, ncol=2)
ggsave(paste0("../3_Output/_Patient/Candidates/_boxplots_", VAR2, ".pdf"), t, width = 6, height = 7)
Once the proper patient samples were selected for the analysis, RNA was isolated from the left ventricle endocardial tissue using the RNeasy Lipid Mini-Kit according to the manufacturer’s instructions (Qiagen, Valencia, CA). High-throughput RNA sequencing was performed at the Heflin Genomics Core at the University of Alabama at Birmingham. Once sample read quality was checked (multiQC analysis), the paired-end fastq files were then aligned to the reference genome, which was created using Gencode human sequence (GRCh38.p10.genome.fa) and annotation (gencode.v27.chr_patch_hapl_scaff.annotation.gtf). STAR aligner is the current gold-standard for this, which we used for the current analysis. Before aligning each fastq file to the genome, an annotated reference genome must first be assembled. This was performed as follows (this was performed in Cheaha as `bash GenomeReference.sh’:
STAR=../../Tools/STAR-2.5.3a/bin/Linux_x86_64/STAR
$STAR \ --runThreadN 12 \ --runMode genomeGenerate \ --genomeDir ./ \ --genomeFastaFiles /data/scratch/pepinme/huHrt/Input/Genome/GRCh38.p10.genome.fa \
Alignment of short reads to this annotated genome could then proceed, using the following SLURM batch script which was submitted to the UAB Cheaha compute cluster (See Appendix). This shell script contains the following STAR alignment run settings:
$STAR_RUN \ --genomeDir $GENOME_DIR \ --readFilesCommand zcat \ --readFilesIn $INPUT_DIR/fastq/${VAR}_R1_001.fastq.gz \ $INPUT_DIR/fastq/${VAR}_R2_001.fastq.gz \ --sjdbGTFfile $GENOME_DIR/gencode.v27.chr_patch_hapl_scaff.annotation.gtf \ --sjdbOverhang 99 \ --quantMode GeneCounts \ --runThreadN 12 \ --outSAMtype BAM SortedByCoordinate \ --outFileNamePrefix ${RESULTS_DIR}/Alignment/${VAR}_
Before the DESeq2-based differential expression can be computed, the counts generated by STAR need to be compiled, since the .tab file contains count information based on forward, reverse, and combined reads. Therefore, we will take the fourth column in each table and merge them.
Count.files <- list.files(path = "../1_Cheaha/counts/", pattern = "*_ReadsPerGene.out.tab", full.names = TRUE, all.files = TRUE)
Counts <- lapply(Count.files, read.table, skip = 4) #skip the first 4 rows, since these are summary data.
#Create a data.frame containing the raw counts
countData.raw <- as.data.frame(sapply(Counts, function(x) x[,4])) #selects only the 4th column as the raw counts.
#Generate Column names and Row names for the counts (remove the extra nonsense from the path names)
colnames <- gsub( "_ReadsPerGene[.]out[.]tab", "", Count.files)
colnames <- gsub( "[.][.]/1_Cheaha/counts//", "", colnames)
colnames(countData.raw) <- colnames
row.names(countData.raw) <- Counts[[1]][,1]
After alignment of the fastq files to the annotated genome assembly (hg38), the first step in the analysis is to consolidate the raw data from the provided files into data matrix that can be used to generate a normalized count matrix and differential expression dataset.
## [1] FALSE
DESeq2 (version 1.18.1) was used to perform the raw count normalization within R (version 3.4.2)
######### RUN DESeq2
dds<-DESeqDataSetFromMatrix(countData=countData, colData = colData, design= ~Race)
dds
## class: DESeqDataSet
## dim: 58381 29
## metadata(1): version
## assays(1): counts
## rownames(58381): ENSG00000223972.5 ENSG00000227232.5 ...
## ENSG00000210195.2 ENSG00000210196.2
## rowData names(0):
## colnames(29): LVAD001 LVAD006 ... LVAD153 LVAD157
## colData names(35): LVAD_ID Zip9 ... RA Color
# dds$ICM<-relevel(dds$ICM, ref = "NICM") # setting the reference to wild-type genotype. only relevant for factors.
#Determine the Dispersion Relationship (determines which distribution to use for the differential analysis) - should take about 2 minutes
dds <- estimateSizeFactors(dds)
dds <- estimateDispersions(dds)
plotDispEsts(dds)
png(file=paste0("../3_Output/1_RNA/", COMPARISON, "/", COMPARISON, "_Dispersion.png"))
plotDispEsts(dds)
dev.off()
## quartz_off_screen
## 2
There appears to be a linear negative correlation between the mean and dispersion estimates, so the parametric “Wald” model should be an appropriate fit for differential expression analysis. Furthermore, we could get away with the parametric fit-type, but the run-time is not significantly impaired, allowing us to use the ‘local’ fit-type. NOTE: If it were nonlinear throughout, we would require a ‘local’ nonparametric fit-type.
##Pre-Filter to reduce the size of this dataset (according to the DESeq2 document reccomendations)
dds <- dds[ rowSums(counts(dds)) > 1, ]
dds
## class: DESeqDataSet
## dim: 32903 29
## metadata(1): version
## assays(2): counts mu
## rownames(32903): ENSG00000223972.5 ENSG00000227232.5 ...
## ENSG00000210195.2 ENSG00000210196.2
## rowData names(10): baseMean baseVar ... dispOutlier dispMAP
## colnames(29): LVAD001 LVAD006 ... LVAD153 LVAD157
## colData names(36): LVAD_ID Zip9 ... Color sizeFactor
################Run DESeq2 differential quantification (Likelihood ratio test (LRT) or Wald-test)
dds<-DESeq(dds, test="Wald", fitType="parametric")
#compile the results tables
resultsNames(dds)
## [1] "Intercept"
## [2] "Race_African_American_vs_Caucasian_American"
resdf<-as.data.frame(results(dds, format = "DataFrame"))
resdf$ensembl_gene_id<-as.character(row.names(resdf))
Once the differential Expression analysis was performed, the following were compiled into a results data matrix: Log2FoldChange, P-value, Bonferroni-Adjusted P-Value (Q-value), and normalized counts for each sample.
####Add Annotation to the results file (this will take some time, about 5 minutes...)
##Add Gene Information
library(biomaRt)
hsapiens <- biomaRt::useEnsembl(biomart = "ENSEMBL_MART_ENSEMBL",
host = "www.ensembl.org",
dataset = "hsapiens_gene_ensembl",
version = 94)
bm <- getBM(attributes=c("ensembl_gene_id_version", "external_gene_name", "chromosome_name", "start_position", "end_position"), mart=hsapiens)
write.csv(bm, "../2_Input/BiomaRt_Annotation.csv")
bm<-read.csv("../2_Input/BiomaRt_Annotation.csv", row.names = 1)
results<-merge(resdf, bm, by.x="ensembl_gene_id", by.y="ensembl_gene_id_version")
####Add normalized count data (for heatmap and sota)
normcount<-as.data.frame(counts(dds, normalized=TRUE))
normcount$ensembl_gene_id<-rownames(normcount)
results<-dplyr::left_join(results, normcount, by="ensembl_gene_id")
results<-results[order(results$pvalue),] # order table by pvalue
##Create a Counts table with annotated Gene name
# Counts_table<-dplyr::select(results, external_gene_name, contains("LVAD"))
# write.xlsx(Counts_table, "../2_Input/CountData.xlsx", row.names = FALSE)
#Create filters as tabs
results_p05<-dplyr::filter(results, pvalue<0.05)
results_q05<-dplyr::filter(results, padj<0.05)
library(openxlsx)
wb_DESeq<-createWorkbook()
#Unfiltered
addWorksheet(wb_DESeq, "Unfiltered")
writeData(wb_DESeq, "Unfiltered", results, startCol = 1)
#P-value Significant (0.05)
addWorksheet(wb_DESeq, "P_0.05")
writeData(wb_DESeq, "P_0.05", results_p05, startCol = 1)
#Q-value Significant (0.05)
addWorksheet(wb_DESeq, "Q_0.05")
writeData(wb_DESeq, "Q_0.05", results_q05, startCol = 1)
saveWorkbook(wb_DESeq, file = paste0("../3_Output/1_RNA/", COMPARISON, "/", COMPARISON,"_DESeq2.xlsx"), overwrite = TRUE)
library(limma)
#Rewrite the plotMDS function to output gene index.
plotMDS.default<-
function (x, top = 500, labels = colnames(x), col = NULL, cex = 1,
dim.plot = c(1, 2), ndim = max(dim.plot), gene.selection = "pairwise",
xlab = paste("Dimension", dim.plot[1]), ylab = paste("Dimension",
dim.plot[2]), ...)
{
x <- as.matrix(x)
ok <- is.finite(x)
if (!all(ok))
x <- x[apply(ok, 1, all), ]
if (is.null(labels))
labels <- 1:dim(x)[2]
nprobes <- nrow(x)
nsamples <- ncol(x)
if (ndim < 2)
stop("Need at least two dim.plot")
if (nsamples < ndim)
stop("Two few samples")
gene.selection <- match.arg(gene.selection, c("pairwise",
"common"))
cn <- colnames(x)
dd <- matrix(0, nrow = nsamples, ncol = nsamples, dimnames = list(cn,
cn))
topindex <- nprobes - top + 1
if (gene.selection == "pairwise") {
for (i in 2:(nsamples)) for (j in 1:(i - 1)) dd[i, j] = sqrt(mean(sort.int((x[,
i] - x[, j])^2, partial = topindex)[topindex:nprobes]))
}
else {
# Same genes used for all comparisons ,"common"
s <- rowMeans((x - rowMeans(x))^2)
q <- quantile(s, p = (topindex - 1.5)/(nprobes - 1))
x <- x[s >= q, ]
# an extra line
ind.top.genes<-which(s >= q)
for (i in 2:(nsamples)) dd[i, 1:(i - 1)] = sqrt(colMeans((x[,
i] - x[, 1:(i - 1), drop = FALSE])^2))
}
a1 <- cmdscale(as.dist(dd), k = ndim)
mds <- new("MDS", list(dim.plot = dim.plot, distance.matrix = dd,
cmdscale.out = a1, top = top, gene.selection = gene.selection))
mds$x <- a1[, dim.plot[1]]
mds$y <- a1[, dim.plot[2]]
mdsPlot<-plotMDS(mds, labels = labels, col = col, cex = cex, xlab = xlab,
ylab = ylab, ...)
list (mds=mds, ind.top.genes=ind.top.genes)
}
# Perform MDS on RNA-sequencing data
MDS_data<-read.xlsx("../2_Input/CountData.xlsx")
rownames(MDS_data)<-make.unique(MDS_data$external_gene_name, sep = ".")
MDS_data<-dplyr::select(MDS_data, -external_gene_name)
## Create color based on race
ann_colors = list(Race = c(African_American="#1b9e77", Asian_American = "#d95f02", Caucasian_American="#7570b3", Eastern_African = "#e7298a"))
## MDS PLot
NGENES = 1000
mds<-plotMDS.default(MDS_data, gene.selection = "common", top = NGENES, col = colData_all$Color)
## Extract genes from this
MDS_GeneList<-rownames(as.data.frame(mds$ind.top.genes))
TopGenes_MDS<-subset(results, ensembl_gene_id %in% MDS_GeneList)
Before we examined the gene networks and pathways differentially regulated by NRF2 knockout, the first task was to determine whether transgene induction resulted in global changes. An effective way of determining this is the QQ plot, which compares the P-value distribution produced by the pairwise comparison (transgenic vs. WT mouse) to that of a random normal distribution. Below, it is evident that the two experimental groups produce robustly divergent expression patterns consistent with a true population difference worthy of differential expression analysis.
#Create Q-Q plot
test<-results
test<-test[complete.cases(test),]
pQQ(test$pvalue, lim=c(0,10))
png(file=paste0("../3_Output/1_RNA/", COMPARISON, "/", COMPARISON,"_QQ.Plot.png"))
pQQ(test$pvalue, lim=c(0,10))
dev.off()
## quartz_off_screen
## 2
Once we established that the populations under consideration truly display divergene expression patterns, we sought to determine whether unbiased global gene expression patterns recapitulate the described phenotypes within each heart failure group. To accomplish this, an unsupervised Principal Components Analysis (PCA) was initially used with normalized counts.
Before running the principal components analysis, it was necessary to first determine the number of PC’s required to account for 80% of the variance, a machine-learning algorithmm benchmark that provides sufficient confidence in the analysis.
#Plot Features of the PCA
library(dplyr)
library(plotly)
##Import the data to be used for PCA
normCount_all<-data.matrix(read.xlsx("../2_Input/RNA_input.xlsx", sheet = "CountData", rowNames = T))
#transpose the dataset (required for PCA)
data.pca<-t(normCount_all)
data.pca<-as.data.frame(data.pca)
##Import the data to be used for annotation
rownames(colData_all)<-colData_all$LVAD_ID
Index<-colData_all
Index<-as.data.frame(Index)
##merge the file
data.pca_Final<-merge(Index, data.pca, by=0)
rownames(data.pca_Final)<-data.pca_Final$Row.names
pca.comp<-prcomp(data.pca_Final[,(ncol(Index)+2):ncol(data.pca_Final)])
pcaCharts=function(x) {
x.var <- x$sdev ^ 2
x.pvar <- x.var/sum(x.var)
par(mfrow=c(2,2))
plot(x.pvar,xlab="Principal component",
ylab="Proportion of variance", ylim=c(0,1), type='b')
plot(cumsum(x.pvar),xlab="Principal component",
ylab="Cumulative Proportion of variance",
ylim=c(0,1),
type='b')
screeplot(x)
screeplot(x,type="l")
par(mfrow=c(1,1))
}
pcaCharts(pca.comp)
png(file=paste0("../3_Output/1_RNA/", COMPARISON, "/", COMPARISON, "_PCA.Charts.png"))
pcaCharts(pca.comp)
dev.off()
## quartz_off_screen
## 2
From the previous calculations, it is seens that only 2 principal components are necessary (accounting for >80% cumulative variance). Nonetheless, below is a 3-D PCA to ensure that all groups are characterize to higher-degree of stringency.
##Create a 3D-PCA for Inspection
library(plotly)
##Index
Index_PCA<-openxlsx::read.xlsx("../2_Input/1_Patient/colData_CHAAMPS.FINAL.xlsx", sheet="Summary", startRow=2)
# Index_PCA<-dplyr::filter(Index_PCA, Race %in% c("Caucasian_American", "African_American"))
Index_PCA$Race<-factor(Index_PCA$Race, levels = c("Caucasian_American","African_American", "Asian_American", "Eastern_African"))
rownames(Index_PCA)<-Index_PCA$LVAD_ID
PCs<-merge(pca.comp$x, Index_PCA, by=0)
rownames(PCs)<-PCs$Row.names
# PCs$Race[which(PCs$Race == 1)] <- 'Caucasian American'
# PCs$Race[which(PCs$Race == 2)] <- 'African American'
# PCs$Race[which(PCs$Race == 3)] <- 'Asian American'
# PCs$Race[which(PCs$Race == 4)] <- 'Eastern African'
PCs$Race <- as.factor(PCs$Race)
fig <- plot_ly(PCs, x = ~PC1, y = ~PC2, z = ~PC3, color = ~Race, colors = c("#7570b3", "#1b9e77", "#d95f02", "#e7298a"))
fig <- fig %>% add_markers()
fig <- fig %>% layout(scene = list(xaxis = list(title = 'PC1'),
yaxis = list(title = 'PC2'),
zaxis = list(title = 'PC3')))
fig
In order to visualize the distribution of differentially expressed genes, as well as determine the effect various heart failure etiologies on transcription, hierarchical clustering and heatmap visualization were performed at the Q < 0.05 statistical level. This analysis reveals that P < 0.05 is sufficient to separate all samples by genotype.
library(pheatmap)
results_p05<-filter(results, pvalue<0.01)
normCount_all<-read.xlsx("../2_Input/CountData.xlsx", rowNames = F)
rownames(normCount_all)<-make.unique(normCount_all$external_gene_name, sep = ".")
normCount_all<-data.matrix(normCount_all[,2:ncol(normCount_all)])
hm_data<-subset(normCount_all, rownames(normCount_all) %in% results_p05$external_gene_name)
hm_data<-data.matrix(hm_data)
##
##Index file for annotating samples
rownames(colData_all)<-colData_all$LVAD_ID
Index<-dplyr::select(colData_all, Race, Age, Cardiac.Index, BMI)
Index<-as.data.frame(Index)
ann_colors = list(Race = c(African_American="#1b9e77", Asian_American = "#d95f02", Caucasian_American="#7570b3", Eastern_African = "#e7298a"))
paletteLength <- 100
myColor <- colorRampPalette(c("dodgerblue4", "white", "gold2"))(paletteLength)
pheatmap(hm_data, scale="row",
cluster_cols = TRUE,
cluster_rows = TRUE,
#breaks = myBreaks,
cutree_cols = 2,
cutree_rows = 2,
angle_col = 45,
fontsize_col = 8,
color = myColor,
show_rownames = FALSE,
border_color = NA,
annotation_colors = ann_colors,
annotation_col = Index,
filename=paste0("../3_Output/1_RNA/", COMPARISON, "/", COMPARISON,"_Heatmap_Normcount.P01.pdf"))
vst<-varianceStabilizingTransformation(data.matrix(read.xlsx("../2_Input/RNA_input.xlsx", sheet = "CountData", rowNames = T)))
normhm<-vst[row.names(resdf[which(resdf$pvalue<0.05),]),]
normhm<-scale(t(normhm))
normhm<-t(normhm)
pheatmap(normhm, #Variance stabilized transformation
cluster_cols=T,
clustering_method = "ward.D2",
border_color=NA,
cluster_rows=T,
scale = 'row',
show_colnames = T,
show_rownames = F,
annotation_colors = ann_colors,
color = myColor,
annotation_col = Index,
filename=paste0("../3_Output/1_RNA/", COMPARISON, "/", COMPARISON,"_VST.Heatmap.P01.pdf"))
pheatmap(normhm, #Variance stabilized transformation
cluster_cols=T,
clustering_method = "ward.D2",
border_color=NA,
cluster_rows=T,
scale = 'row',
show_colnames = T,
show_rownames = F,
annotation_colors = ann_colors,
color = myColor,
annotation_col = Index)
We used the following script to identify all epigenetic regulators that are differentially-expressed in cardiac samples of African Americans relative to their age-adjusted Caucasian American counterparts.
##########Find all Epigeneric Regulators
EPIs<-openxlsx::read.xlsx("../2_Input/Miscelleneous/EpiGenes_main.xlsx")
EPIs_Genes<-EPIs$HGNC_symbol
DEG_List<-read.xlsx(paste0("../3_Output/1_RNA/", COMPARISON, "/", COMPARISON, "_DESeq2.xlsx"), sheet = "Unfiltered")
Epi_DEGs<-merge(DEG_List, EPIs, by.x="external_gene_name", by.y="HGNC_symbol")
openxlsx:::write.xlsx(Epi_DEGs,paste0("../3_Output/1_RNA/", COMPARISON,"/",COMPARISON, "_Epigenetic.DEGs.xlsx"))
#############################
library(ggplot2)
library(gridExtra)
library(ggpubr)
library(dplyr)
library(gtools)
library(openxlsx)
ifelse(!dir.exists(file.path(paste0("../3_Output/1_RNA/Candidates"))), dir.create(file.path(paste0("../3_Output/1_RNA/Candidates"))), FALSE)
## [1] FALSE
Counts<-read.xlsx("../2_Input/CountData.xlsx", rowNames = F)
colData<-openxlsx::read.xlsx("../2_Input/1_Patient/colData_CHAAMPS.FINAL.xlsx", sheet = "Summary", startRow = 2)
colData<-dplyr::filter(colData, Race %in% RACE, Ischemia %in% ISCHEMIA, Diabetes %in% DIABETES)
#Filter results by the gene vector
DEGs<-subset(Counts, external_gene_name %in% GENES)
rownames(DEGs)<-make.unique(as.character(DEGs$external_gene_name, sep = "."))
tDEGs<-as.data.frame(t(DEGs))
tDEGs = tDEGs[-1, ]
## convert all genes to numeric (from factors)
asNumeric=function(x){as.numeric(as.character(x))}
factorsNumeric=function(d){modifyList(d, lapply(d[, sapply(d, is.character)], asNumeric))}
##
tDEGs<-factorsNumeric(tDEGs)
tDEGs$LVAD_ID<-rownames(tDEGs)
colData.ex<-dplyr::inner_join(tDEGs, colData)
colData.ex$Race<-factor(colData.ex$Race, levels = c("Caucasian_American", "African_American"))
colData.ex$Ischemia<-factor(colData.ex$Ischemia, levels = c("NICM", "ICM"))
colData.ex<-dplyr::group_by_(colData.ex, VAR1) #define groups for statistics
groupsize<-dplyr::tally(colData.ex) #define sample size (for SEM)
#Define function for mean and standard deviation for each group
data_summary <- function(data, varname, groupnames){
require(plyr)
summary_func <- function(x, col){
c(mean = mean(x[[col]], na.rm=TRUE),
sd = sd(x[[col]], na.rm=TRUE))
}
data_sum<-ddply(data, groupnames, .fun=summary_func,
varname)
data_sum <- rename(data_sum, c("mean" = varname))
return(data_sum)
}
#Create a p-value for every summarized data (relative to CON)
t.test2 <- function(m1,m2,s1,s2,n1,n2,m0=0,equal.variance=FALSE)
{
if( equal.variance==FALSE )
{
se <- sqrt( (s1^2/n1) + (s2^2/n2) )
# welch-satterthwaite df
df <- ( (s1^2/n1 + s2^2/n2)^2 )/( (s1^2/n1)^2/(n1-1) + (s2^2/n2)^2/(n2-1) )
} else
{
# pooled standard deviation, scaled by the sample sizes
se <- sqrt( (1/n1 + 1/n2) * ((n1-1)*s1^2 + (n2-1)*s2^2)/(n1+n2-2) )
df <- n1+n2-2
}
t <- (m1-m2-m0)/se
dat <- c(m1-m2, se, t, 2*pt(-abs(t),df))
names(dat) <- c("Difference of means", "Std Error", "t", "p-value")
return(dat)
}
########################################################
plotlist = list()
p<-1
if(any(grepl("package:plyr", search()))) detach("package:plyr") else message("plyr not loaded")
for (i in GENES){
GENE<-as.name(i) #define a "name" for the variable
ds <- data_summary(colData.ex, varname=i, groupnames=c(VAR1))
ds<-dplyr::left_join(ds, groupsize)
ds<-dplyr::mutate(ds, upper=ds[,2]+(sd))
for(j in seq_along(ds[,4])){
p[j]=round(t.test2(m1=ds[j,2], m2=ds[1,i], s1=ds[j,"sd"], s2=ds[1,"sd"], n1=ds[j,"n"], n2=ds[1,"n"], equal.variance = FALSE)[4], 2)
} ### THIS MUST BE CORRECTED BASED ON THE ANALYSIS (change [,THIS] as needed to create: m = mean, s = standard deviation, n = sample size.
ds$p_con<-stars.pval(p)
g<-ggplot(ds, aes_string(x=VAR1, y=i, fill = VAR1)) +
geom_bar(stat="identity", color="black",
position=position_dodge()) +
# geom_point(shape="O",stat="identity", mapping = aes_string(x=VAR2, y=i),data = colData.ex, position=position_dodge(0.9), stroke = 2) +
geom_errorbar(aes_string(ymin=i, ymax="upper"), width=.2,
position=position_dodge(.9)) +
geom_text(aes(label=p_con), position=position_dodge(width=0.9), vjust=-1, size=5) +
scale_fill_manual(values=c("white", "black", "darkcyan")) +
ylim(NA, 1.1*max(ds$upper))
g_plot<-g+labs(title=paste0("Expression - ", i), x=VAR1, y = "Normalized Counts")+
theme_classic2(base_size = 10)
pdf(file=paste0("../3_Output/1_RNA/Candidates/", i, "_", VAR1, ".and.", VAR1, "_Expression.pdf"), width = 3, height = 1.5)
print(g_plot)
dev.off()
plotlist[[i]] = g_plot
}
t<-marrangeGrob(grobs = plotlist, legend, nrow=3, ncol=2)
ggsave(paste0("../3_Output/1_RNA/Candidates/_DEGs_", VAR1, ".v.", VAR2, ".pdf"), t, width = 6, height = 7)
########################################################
#Plot as single bar graph
library(ggplot2)
library(gridExtra)
library(ggpubr)
library(dplyr)
library(tidyr)
library(openxlsx)
#Import dataset
Counts<-read.xlsx("../2_Input/CountData.xlsx")
Counts[,2:ncol(Counts)]<-sapply(Counts[,2:ncol(Counts)], as.numeric) #convert the count data to numeric (somehow becomes character in excel)
colData<-openxlsx::read.xlsx("../2_Input/1_Patient/colData_CHAAMPS.FINAL.xlsx", sheet = "Summary", startRow = 2)
colData<-dplyr::filter(colData, Race %in% RACE, Ischemia %in% ISCHEMIA, Diabetes %in% DIABETES)
#Filter results by the gene vector
DEGs<-dplyr::filter(Counts, external_gene_name %in% GENES)
rownames(DEGs)<-DEGs$external_gene_name
tDEGs<-as.data.frame(t(DEGs))
tDEGs = tDEGs[-1,]
## convert all genes to numeric (from factors)
asNumeric=function(x){as.numeric(as.character(x))}
factorsNumeric=function(d){modifyList(d, lapply(d[, sapply(d, is.character)], asNumeric))}
##
tDEGs<-factorsNumeric(tDEGs)
tDEGs$LVAD_ID<-rownames(tDEGs)
colData.ex<-dplyr::inner_join(tDEGs, colData)
colData.ex$Race<-factor(colData.ex$Race, levels = c("Caucasian_American", "African_American"))
colData.ex$Diabetes<-factor(colData.ex$Diabetes, levels = c("ND", "T2D"))
colData.ex$Ischemia<-factor(colData.ex$Ischemia, levels = c("NICM", "ICM"))
colData.ex<-colData.ex %>% group_by_(VAR1) #define groups for statistics
groupsize<-colData.ex %>% tally() #define sample size (for SEM)
#Define function for mean and standard deviation for each group
data_summary <- function(data, varname, groupnames){
require(plyr)
summary_func <- function(x, col){
c(mean = mean(x[[col]], na.rm=TRUE),
sd = sd(x[[col]], na.rm=TRUE))
}
data_sum<-ddply(data, groupnames, .fun=summary_func,
varname)
data_sum <- rename(data_sum, c("mean" = varname))
return(data_sum)
}
colData.exg<-tidyr::gather(colData.ex, "Gene.Symbol", "Gene.Expression", 1:length(DEGs$external_gene_name))
colData.exg$Gene.Symbol<-factor(colData.exg$Gene.Symbol, levels = GENES)
detach("package:dplyr", unload=TRUE)
ds_timing<-data_summary(colData.exg, varname="Gene.Expression", groupnames=c("Gene.Symbol", VAR1))
groupsize<-colData.ex %>% group_by(Race) %>% dplyr::tally() #Calculate sample sizes
ds_timing<-dplyr::left_join(ds_timing, groupsize) #add sample size to summary table
ds_timing<-dplyr::mutate(ds_timing, #make upper and lower bounds based on SEM
lower=Gene.Expression-(sd/sqrt(n-1)),
upper=Gene.Expression+(sd/sqrt(n-1)))
g<-ggplot(ds_timing, aes_string(x="Gene.Symbol", y="Gene.Expression", fill = VAR1)) +
geom_bar(stat="identity", color="black", position=position_dodge()) +
geom_errorbar(aes(ymin=Gene.Expression, ymax=upper), width=.2, position=position_dodge(.9)) +
labs(y = "Normalized Counts", x = "Gene Name")+
theme_classic() +
scale_fill_manual(values=c('white', "black", "darkcyan")) +
stat_compare_means(mapping = aes_string(x="Gene.Symbol", y="Gene.Expression"),
data = colData.exg, label = "p.signif")
pdf(file="../3_Output/1_RNA/Candidates/_DEGs_singlebar.pdf", width = 5, height = 2)
print(g)
dev.off()
## quartz_off_screen
## 2
########################################################
#GENE SET PLOTTING
####This code is useful in determining DEGs that associate with a given pathway
########################################################
library(ggplot2)
library(gridExtra)
library(ggpubr)
library(dplyr)
library(gtools)
######################################################
#Import dataset
Counts<-read.xlsx("../2_Input/CountData.xlsx")
#Import the Pathway Information
GENE.Pathway<-read.csv("../2_Input/Gene.Sets/Oxphos.KEGG.csv", header = F)
colnames(GENE.Pathway)<-"external_gene_name"
#Filter results by the gene vector
DEGSET<-Counts %>% inner_join(., GENE.Pathway)
rownames(DEGSET)<-DEGSET$external_gene_name
GENESET_FIL=as.character(DEGSET$external_gene_name)
colData<-openxlsx::read.xlsx("../2_Input/1_Patient/colData_CHAAMPS.FINAL.xlsx", sheet = "Summary", startRow = 2)
colData<-dplyr::filter(colData, Race %in% RACE, Ischemia %in% ISCHEMIA, Diabetes %in% DIABETES)
#Filter results by the gene vector
tDEGs<-as.data.frame(t(DEGSET))
tDEGs = tDEGs[-1, ]
## convert all genes to numeric (from factors)
asNumeric=function(x){as.numeric(as.character(x))}
factorsNumeric=function(d){modifyList(d, lapply(d[, sapply(d, is.character)], asNumeric))}
##
tDEGs<-factorsNumeric(tDEGs)
tDEGs$LVAD_ID<-rownames(tDEGs)
colData.ex<-dplyr::inner_join(tDEGs, colData)
colData.ex$Race<-factor(colData.ex$Race, levels = c("Caucasian_American", "African_American"))
colData.ex$Ischemia<-factor(colData.ex$Ischemia, levels = c("NICM", "ICM"))
colData.ex<-dplyr::group_by_(colData.ex, VAR1) #define groups for statistics
groupsize<-dplyr::tally(colData.ex) #define sample size (for SEM)
#Define function for mean and standard deviation for each group
data_summary <- function(data, varname, groupnames){
require(plyr)
summary_func <- function(x, col){
c(mean = mean(x[[col]], na.rm=TRUE),
sd = sd(x[[col]], na.rm=TRUE))
}
data_sum<-ddply(data, groupnames, .fun=summary_func,
varname)
data_sum <- rename(data_sum, c("mean" = varname))
return(data_sum)
}
#Create a p-value for every summarized data (relative to CON)
t.test2 <- function(m1,m2,s1,s2,n1,n2,m0=0,equal.variance=FALSE)
{
if( equal.variance==FALSE )
{
se <- sqrt( (s1^2/n1) + (s2^2/n2) )
# welch-satterthwaite df
df <- ( (s1^2/n1 + s2^2/n2)^2 )/( (s1^2/n1)^2/(n1-1) + (s2^2/n2)^2/(n2-1) )
} else
{
# pooled standard deviation, scaled by the sample sizes
se <- sqrt( (1/n1 + 1/n2) * ((n1-1)*s1^2 + (n2-1)*s2^2)/(n1+n2-2) )
df <- n1+n2-2
}
t <- (m1-m2-m0)/se
dat <- c(m1-m2, se, t, 2*pt(-abs(t),df))
names(dat) <- c("Difference of means", "Std Error", "t", "p-value")
return(dat)
}
########################################################
plotlist = list()
p<-1
if(any(grepl("package:plyr", search()))) detach("package:plyr") else message("plyr not loaded")
for (i in GENESET_FIL){
GENE<-as.name(i) #define a "name" for the variable
ds <- data_summary(colData.ex, varname=i, groupnames=c(VAR1))
ds<-dplyr::left_join(ds, groupsize)
ds<-dplyr::mutate(ds, upper=ds[,2]+(sd))
for(j in seq_along(ds[,4])){
p[j]=round(t.test2(m1=ds[j,2], m2=ds[1,i], s1=ds[j,"sd"], s2=ds[1,"sd"], n1=ds[j,"n"], n2=ds[1,"n"], equal.variance = FALSE)[4], 2)
} ### THIS MUST BE CORRECTED BASED ON THE ANALYSIS (change [,THIS] as needed to create: m = mean, s = standard deviation, n = sample size.
ds$p_con<-stars.pval(p)
g<-ggplot(ds, aes_string(x=VAR1, y=i, fill = VAR1)) +
geom_bar(stat="identity", color="black",
position=position_dodge()) +
# geom_point(shape="O",stat="identity", mapping = aes_string(x=VAR2, y=i),data = colData.ex, position=position_dodge(0.9), stroke = 2) +
geom_errorbar(aes_string(ymin=i, ymax="upper"), width=.2,
position=position_dodge(.9)) +
geom_text(aes(label=p_con), position=position_dodge(width=0.9), vjust=-1, size=5) +
scale_fill_manual(values=c("white", "black", "darkcyan")) +
ylim(NA, 1.1*max(ds$upper))
g_plot<-g+labs(title=paste0("Expression - ", i), x=VAR1, y = "Normalized Counts")+
theme_classic2(base_size = 10)
pdf(file=paste0("../3_Output/1_RNA/Candidates/", i, "_", VAR1, ".and.", VAR1, "_Expression.pdf"), width = 3, height = 1.5)
print(g_plot)
dev.off()
plotlist[[i]] = g_plot
}
t<-marrangeGrob(grobs = plotlist, legend, nrow=3, ncol=2)
ggsave(paste0("../3_Output/1_RNA/Candidates/_DEGs_Pathway", VAR1, ".v.", VAR2, ".pdf"), t, width = 6, height = 7)
########################################################
# Differential expression analysis with limma
library(openxlsx)
library(magrittr)
library(dplyr)
library(ggpubr)
library(matrixStats)
library("ggrepel")
library(ggplot2)
library(cowplot)
m450k<-read.xlsx("../2_Input/_Pilot/Pepin.Wende_2018.xlsx", sheet = "betaData", rowNames = T)
colData_m450k<-read.xlsx("../2_Input/_Pilot/Pepin.Wende_2018.xlsx", sheet = "colData")
# MDS in ggplot2
Ntop = 1000
RowVar<-rowVars(data.matrix(m450k)) #calculate variances for each row (vector)
MDS.set<-as.data.frame(cbind(m450k, RowVar))
MDS_matrix<-MDS.set %>% arrange(desc(RowVar)) %>% top_n(Ntop,RowVar) #Select top N rows by variance
# Compute MDS
mds <- MDS_matrix %>% select(-RowVar) %>% t(.) %>%
dist() %>%
cmdscale() %>%
as_tibble()
colnames(mds) <- c("Dim.1", "Dim.2")
rownames(mds)<-colnames(m450k)
mds$Sample_Name<-rownames(mds)
mds<-dplyr::inner_join(mds, colData_m450k)
#K-means clustering
clust <- kmeans(mds[,1:2], 2)$cluster %>%
as.factor()
mds <- mds %>%
mutate(kmeans.2 = clust)
# Main plot
COLOR=c("#1b9e77", "#7570b3")
pmain <- ggplot(mds, aes(x = Dim.1, y = Dim.2, color = Race))+
scale_color_manual(values = COLOR) +
theme(panel.background = element_rect("white", colour = "black", size=2),
panel.grid.major = element_line(colour = "gray50", size=.75),
panel.grid.minor = element_line(colour = "gray50", size=0.4),
legend.position="bottom",
legend.key=element_blank(),
axis.text = element_text(size = 12),
axis.title = element_text(size = 14, face="bold")) +
geom_hline(yintercept = 0, size = 1) +
geom_vline(xintercept=0, size=1) +
geom_point()+
stat_ellipse()+
geom_text_repel(data=mds, aes(label=Sample_Name), show_guide = F) +
labs(x="Principal Component 1",
y="Principal Component 2")
# Marginal densities along x axis
xdens <- axis_canvas(pmain, axis = "x")+
geom_density(data = mds, aes(x = Dim.1, fill = Race),
alpha = 0.7, size = 0.2)+
scale_fill_manual(values = COLOR)
# Marginal densities along y axis
ydens <- axis_canvas(pmain, axis = "y", coord_flip = TRUE)+ #must set coord_flip = true if using coord_flip() below
geom_density(data = mds, aes(x = Dim.2, fill = Race),
alpha = 0.7, size = 0.2)+
coord_flip()+
scale_fill_manual(values = COLOR)
p1 <- insert_xaxis_grob(pmain, xdens, grid::unit(.2, "null"), position = "top")
p2<- insert_yaxis_grob(p1, ydens, grid::unit(.2, "null"), position = "right")
pdf(file="../3_Output/2_Methyl/Pilot.Scatterhist.pdf", height = 7, width = 7, onefile = F)
ggdraw(p2)
dev.off()
## quartz_off_screen
## 2
## [1] FALSE
## [1] "../2_Input/3_Methyl/Wende_CHAAMP_MethylationEPIC_Sample_Sheet.csv"
## quartz_off_screen
## 2
## class: RGChannelSet
## dim: 1051815 32
## metadata(0):
## assays(2): Green Red
## rownames(1051815): 1600101 1600111 ... 99810990 99810992
## rowData names(0):
## colnames(32): LVAD001 LVAD084 ... LVAD083 LVAD092
## colData names(17): Sample_Name Sample_Well ... Basename filenames
## Annotation
## array: IlluminaHumanMethylationEPIC
## annotation: ilm10b4.hg19
## quartz_off_screen
## 2
## quartz_off_screen
## 2
## quartz_off_screen
## 2
## quartz_off_screen
## 2
## quartz_off_screen
## 2
SNPs have been shown to confound the interpretation of methylation arrays when mutations exist within the CpG sites. To address this concern, a package called “MethylToSNP” exists to identify novel SNPs based on methylation array data, which has been proposed to reduce the number of CpGs that are filtered. Using this approach, 1,294 CpGs were identified as putative SNPs which are likely influenced by minor allele fractions (MAFs); among these, 1,076 (83%) have been idenbtified as SNPs via published genomic sequencing analyses.
To determine whether the SNP frequency in our dataset contributes to racial differences, the beta values within these SNPs were clustered via hierarchical clustering, resulting in a complete separation according to patient race (see figure).
#Remove SNPs
##Option 1: Built-in function that removes all known SNPs
gRatioSet_noSNPs<-dropLociWithSnps(gRatioSet.quantile, snps = c("SBE", "CpG"), maf = 0) #Doing this removes ~40% of all SNPs in the EPIC array
##Option 2: Identify putative SNPs using methylation barcoding (i.e. "gap hunting")
library("MethylToSNP")
library("RColorBrewer")
library("pheatmap")
Mvalues<-as.data.frame(getM(MSet))
x <- MethylToSNP(MSet, SNP=SNPs.147CommonSingle, verbose=TRUE)
x$CpG_ID<-rownames(x)
###
pdf(file="../3_Output/2_Methyl/Putative.SNPs.pdf", width = 10, height = 5) #Print Putative SNP Methylation
plotPotentialSNPs(x, MSet)
dev.off()
## quartz_off_screen
## 2
plotPotentialSNPs(x, MSet)
SNPs<-merge(x, as.data.frame(getM(MSet)), by = "row.names")
write.csv(SNPs, "SNPs.csv")
SNPs_matrix<-SNPs %>% set_rownames(.$Row.names) %>% select(contains("LVAD"), -LVAD054) %>% data.matrix()
SNPs_matrix<-SNPs_matrix[!is.infinite(rowSums(SNPs_matrix)),] #One infinite value exists!! (took ~2-3 days to troubleshoot)
# Index
Index<-openxlsx::read.xlsx("../2_Input/1_Patient/colData_CHAAMPS.FINAL.xlsx", sheet = "Summary", startRow = 2, rowNames = TRUE)
Index_SNPs<-Index[colnames(SNPs_matrix),] %>% select(Race)
ann_colors = list(Race = c(African_American="#1b9e77", Asian_American = "#d95f02", Caucasian_American="#7570b3", Eastern_African = "#e7298a"))
paletteLength <- 100
myColor <- colorRampPalette(c("dodgerblue4", "white", "gold2"))(paletteLength)
ann_colors = list(Race = c(African_American="#1b9e77",
Asian_American = "#d95f02",
Caucasian_American="#7570b3",
Eastern_African = "#e7298a"))
heatmap_SNP<-pheatmap(SNPs_matrix, scale="row", #Heatmap of SNPs
cluster_cols = TRUE,
cluster_rows = TRUE,
cutree_cols = 3,
cutree_rows = 4,
angle_col = 45,
fontsize_col = 8,
color = myColor,
show_rownames = FALSE,
border_color = NA,
annotation_colors = ann_colors,
annotation_col = Index_SNPs,
filename = paste0("../3_Output/2_Methyl/SNPS.heatmap.pdf"))
pheatmap(SNPs_matrix, scale="row", #Heatmap of SNPs
cluster_cols = TRUE,
cluster_rows = TRUE,
cutree_cols = 3,
cutree_rows = 4,
angle_col = 45,
fontsize_col = 8,
color = myColor,
show_rownames = FALSE,
border_color = NA,
annotation_colors = ann_colors,
annotation_col = Index_SNPs)
## Cluster Analysis
hc <-heatmap_SNP$tree_row
lbl <- cutree(hc, 4) # split gene dendrogram in 5 groups
cluster1<-which(lbl==1)
cluster2<-which(lbl==2)
cluster3<-which(lbl==3)
cluster4<-which(lbl==4)
#
Cluster1_data<-SNPs_matrix[cluster1,]
Cluster2_data<-SNPs_matrix[cluster2,]
Cluster3_data<-SNPs_matrix[cluster3,]
Cluster4_data<-SNPs_matrix[cluster4,]
#
heatmap_c1<-pheatmap(Cluster1_data, scale="row",
cluster_cols = TRUE,
cluster_rows = TRUE,
#breaks = myBreaks,
cutree_cols = 2,
angle_col = 45,
fontsize_col = 8,
color = myColor,
show_rownames = FALSE,
border_color = NA,
annotation_colors = ann_colors,
annotation_col = Index_SNPs,
filename = paste0("../3_Output/2_Methyl/SNPS_Cluster1.heatmap.pdf"))
#
heatmap_c2<-pheatmap(Cluster2_data, scale="row",
cluster_cols = TRUE,
cluster_rows = TRUE,
#breaks = myBreaks,
cutree_cols = 2,
angle_col = 45,
fontsize_col = 8,
color = myColor,
show_rownames = FALSE,
border_color = NA,
annotation_colors = ann_colors,
annotation_col = Index_SNPs,
filename = paste0("../3_Output/2_Methyl/SNPS_Cluster2.heatmap.pdf"))
#
heatmap_c3<-pheatmap(Cluster3_data, scale="row",
cluster_cols = TRUE,
cluster_rows = TRUE,
#breaks = myBreaks,
cutree_cols = 2,
angle_col = 45,
fontsize_col = 8,
color = myColor,
show_rownames = FALSE,
border_color = NA,
annotation_colors = ann_colors,
annotation_col = Index_SNPs,
filename = paste0("../3_Output/2_Methyl/SNPS_Cluster3.heatmap.pdf"))
#
heatmap_c4<-pheatmap(Cluster4_data, scale="row",
cluster_cols = TRUE,
cluster_rows = TRUE,
#breaks = myBreaks,
cutree_cols = 2,
angle_col = 45,
fontsize_col = 8,
color = myColor,
show_rownames = FALSE,
border_color = NA,
annotation_colors = ann_colors,
annotation_col = Index_SNPs,
filename = paste0("../3_Output/2_Methyl/SNPS_Cluster4.heatmap.pdf"))
##MDS Plot - Unsupervised Clustering by Race
Because such a robust racial signature in cardiac DNA methylation was seen in the pilot analysis, we reproduced the unsupervised method in the larger cohort. This time, we continue to see a distinct racial difference. Furthermore, we found that this racially-determined clustering persisted to among the 500,000 most-variable CpG probes in the EPIC array.
##DMPs
Owing to the remarkable separation by patient race, we chose to identify the CpG sites responsible for a race-based epigenomic difference.
library(minfi)
library(limma)
library(shinyMethyl)
library(dplyr)
library(IlluminaHumanMethylationEPICanno.ilm10b5.hg38)
library(IlluminaHumanMethylationEPICmanifest)
library(RColorBrewer)
#########Part 1: Importing the Data
#Parameters
##Set the experimental conditions
DIABETES=c("ND", "T2D") #Should define the reference group first
ISCHEMIA=c("NICM", "ICM")
RACE=c("Caucasian_American", "African_American")
ISO=c("NONE", "DOB")
STATISTIC = 0.05 #P statistic threshold used in this combination.
VARIABLE = RACE
COMPARISON= paste0(VARIABLE[2], ".vs.", VARIABLE[1])
ifelse(!dir.exists(file.path("../3_Output/2_Methyl/", COMPARISON)), dir.create(file.path("../3_Output/2_Methyl/", COMPARISON)), FALSE)
## [1] FALSE
##Get the array annotation
annoEPIC<-getAnnotation(IlluminaHumanMethylationEPICanno.ilm10b5.hg38)
annoEPIC<-dplyr::select(as.data.frame(annoEPIC), Name, chr, pos, Relation_to_Island, UCSC_RefGene_Name, UCSC_RefGene_Accession, UCSC_RefGene_Group, Regulatory_Feature_Group)
#Import the sample sheet
targets<-read.metharray.sheet(base="../2_Input/3_Methyl", pattern="csv$")
## [1] "../2_Input/3_Methyl/Wende_CHAAMP_MethylationEPIC_Sample_Sheet.csv"
targets<-dplyr::filter(targets, Sample_Name!="LVAD054") #OUTLIER
# Filter targets
targets_filtered<-subset(targets, Race %in% RACE & Diabetes %in% DIABETES & Ischemia %in% ISCHEMIA)
#Import the array data from input directory (red and green .idat files)
RGSet<-read.metharray.exp(base = "../2_Input/3_Methyl/", targets = targets_filtered, verbose = TRUE)
sampleNames(RGSet)<-targets_filtered$Sample_Name
#Check the phenotype metadata to verify correct parsing
phenoData<-pData(RGSet)
#Get the manifest annotation (EPIC, methyl450k, etc...)
manifest<-getManifest(IlluminaHumanMethylationEPICmanifest)
typeIProbes <- getProbeInfo(manifest, type = "I")$Name
##Quality Control
#First step is to identify CpGs that failed to identify methylated positions (defined by expression intensity that reflects background levels)
detP<-detectionP(RGSet)
failed<-detP>0.01
#Determine the fraction of "failed" CpG probes (those which failed to identify a methylated CpG)
colMeans(failed)
## LVAD001 LVAD084 LVAD058 LVAD014 LVAD122 LVAD006
## 0.0002089850 0.0001916658 0.0001200798 0.0002678702 0.0001974388 0.0003175186
## LVAD013 LVAD133 LVAD111 LVAD075 LVAD066 LVAD067
## 0.0001697281 0.0001766558 0.0003129001 0.0003486932 0.0003048179 0.0001731920
## LVAD125 LVAD142 LVAD060 LVAD127 LVAD079 LVAD087
## 0.0002286134 0.0002678702 0.0003452293 0.0004018054 0.0003683216 0.0002771071
## LVAD141 LVAD132 LVAD121 LVAD032 LVAD130 LVAD106
## 0.0001835835 0.0003025086 0.0002320772 0.0002112942 0.0002136034 0.0001177705
## LVAD157 LVAD153 LVAD140 LVAD083 LVAD092
## 0.0002205311 0.0001951296 0.0002274588 0.0002147580 0.0001604912
#Convert R/G to Methylated/Unmethylated in an object of class MethylSet
MSet<-preprocessRaw(RGSet)
#QC data
qc<-getQC(MSet)
plotQC(qc)
##Density plot
gRatioSet.quantile <- preprocessQuantile(RGSet, fixOutliers = TRUE, removeBadSamples = TRUE, badSampleCutoff = 10.5, quantileNormalize = TRUE, stratified = TRUE, mergeManifest = TRUE, sex = NULL)
#Quantification and Differential Expression Analysis
mVals<-getM(gRatioSet.quantile)
mVals<-mVals[,targets_filtered$Sample_Name]
phenoData<-phenoData[targets_filtered$Sample_Name,] #ensure that mVals has the same data as phenoData, otherwise dmpFinder won't work.
#Use Limma to perform differential methylation analysis using M-values (logit-transformed methylation data)
targets_filtered$Race<-factor(targets_filtered$Race)
targets_filtered$Race<-relevel(targets_filtered$Race, ref = "Caucasian_American")
targets_filtered$Diabetes<-factor(targets_filtered$Diabetes)
targets_filtered$ICM<-factor(targets_filtered$Ischemia)
design<-model.matrix(~0+Race, data = targets_filtered)
fit <- lmFit(mVals, design)
contMatrix <- makeContrasts(Race=RaceAfrican_American-RaceCaucasian_American,
levels=design)
contMatrix
## Contrasts
## Levels Race
## RaceCaucasian_American -1
## RaceAfrican_American 1
fit2 <- contrasts.fit(fit, contMatrix)
fit2 <- eBayes(fit2)
summary(decideTests(fit2))
## Race
## Down 550
## NotSig 864898
## Up 411
DMPs <- topTable(fit2, number = "all", adjust.method = "BH")
DMPs<-merge(DMPs, annoEPIC, by= 0)
rownames(DMPs)<-DMPs$Row.names
DMPs<-DMPs %>% select(-Row.names)
beta <- getBeta(gRatioSet.quantile)
#create an annotation table
beta.table<-beta
colnames(beta.table)<-phenoData$Sample_Name
write.csv(beta.table, paste0("../3_Output/2_Methyl/", COMPARISON, "/", COMPARISON, "_beta.table.csv"))
# annotated<-merge(beta.table, as.data.frame(Islands.UCSC), by = 0)
# annotated<-merge(annotated, as.data.frame(Locations), by.x = "Row.names", by.y = 0)
# annotated<-merge(annotated, as.data.frame(Other), by.x = "Row.names", by.y = 0)
# rownames(annotated)<-annotated$Row.names
#Merge annotation with differential methylation table
# Results_dmp<-merge(DMPs, annotated, by = 0) #
Results_dmp<-merge(DMPs, beta.table, by = 0)
#Calculate Average CpG Methylation by race - African_American
library(dplyr)
library(matrixStats)
Results<-Results_dmp %>% replace(is.na(.), 0) %>% mutate(
African_American_SD = rowSds(as.matrix(Results_dmp[,targets_filtered$Sample_Name[targets_filtered$Race=="African_American"]])),
African_American_Mean = rowMeans(as.matrix(Results_dmp[,targets_filtered$Sample_Name[targets_filtered$Race=="African_American"]])),
Caucasian_American_SD = rowSds(as.matrix(Results_dmp[,targets_filtered$Sample_Name[targets_filtered$Race=="Caucasian_American"]])),
Caucasian_American_Mean = rowMeans(as.matrix(Results_dmp[,targets_filtered$Sample_Name[targets_filtered$Race=="Caucasian_American"]])),
Methylation.Diff=(African_American_Mean-Caucasian_American_Mean)*100
)
rownames(Results)<-Results$Row.names
Results_dmp_p05<-filter(Results, P.Value<0.05)
Results_dmp_q05<-filter(Results, adj.P.Val<0.05)
#########################################
#Identify Promoter-associated CpG Islands
library(tidyr)
PromCGI<-dplyr::filter(Results_dmp_p05, grepl("Island", Relation_to_Island), grepl("TSS", UCSC_RefGene_Group))
#Separate Gene Names into unique rows
PromCGI_sep<-PromCGI %>% mutate(UCSC_RefGene_Name = strsplit(as.character(UCSC_RefGene_Name), ";")) %>% unnest(UCSC_RefGene_Name) %>% distinct()
#Save a copy of the countData
library(openxlsx)
wb_countData<-createWorkbook()
addWorksheet(wb_countData, "Unfiltered")
writeData(wb_countData, "Unfiltered", Results, startCol = 1)
addWorksheet(wb_countData, "P_0.05")
writeData(wb_countData, "P_0.05", Results_dmp_p05, startCol = 1)
addWorksheet(wb_countData, "Q_0.05")
writeData(wb_countData, "Q_0.05", Results_dmp_q05, startCol = 1)
addWorksheet(wb_countData, "Promoter.CGI")
writeData(wb_countData, "Promoter.CGI", PromCGI_sep, startCol = 1)
saveWorkbook(wb_countData, file = paste0("../3_Output/2_Methyl/", COMPARISON, "/", COMPARISON, "_DMPs.xlsx"), overwrite = TRUE)
##DMRs
library(DMRcate)
library(missMethyl)
library(biomaRt)
myAnnotation<-cpg.annotate(object = mVals, datatype = "array", what = "M",
analysis.type = "differential", design = design,
contrasts = TRUE, cont.matrix = contMatrix,
coef = "Race", arraytype = "EPIC")
design_test<-model.matrix(~targets_filtered$Race)
DMRs <- dmrcate(myAnnotation, lambda=1000, C=2) #calculates DMRs
results.ranges <- extractRanges(DMRs)
beta<-beta[,targets_filtered$Sample_Name] #ensure that columns are ordered exactly the same as the targets_filtered table.
groups <- c(African_American="#1b9e77", Caucasian_American="#7570b3")
type<-factor(targets_filtered$Race)
cols <- groups[as.character(type)] #creates a string of colors for the DMR.plot function
pdf(file = "../3_Output/2_Methyl/DMR.top.pdf")
DMR.plot(ranges = results.ranges, dmr = 3, CpGs = beta, what = "Beta", arraytype = "EPIC", phen.col = cols, genome = "hg38")
dev.off()
## quartz_off_screen
## 2
results.ranges.sig<-as.data.frame(results.ranges) %>% filter(Fisher < 0.05)
enrichment_GO <- goregion(results.ranges[(elementMetadata(results.ranges)[, "overlapping.genes"] %in% results.ranges.sig$overlapping.genes)], all.cpg = rownames(rownames(beta)), collection = "GO", array.type = "EPIC")
ensembl = useMart("ensembl",dataset="hsapiens_gene_ensembl") #uses human ensembl annotations
#gets gene symbol, transcript_id and go_id for all genes annotated with GO:0007507
gene.data <- getBM(attributes=c('external_gene_name', 'ensembl_transcript_id', 'go_id'), filters = 'go', values = 'GO:0006103', mart = ensembl)
The following figure illustrates the enrichment of differential methylation within CpG “Open Seas” (non-Island associatd CpG sites) found within the associated gene body.
change the viewing angle of 3D-Histogram by dragging mouse across it.
library(plotly)
library(dplyr)
library(stringr)
library(reshape2)
library(readxl)
library(kableExtra)
##Create a regional annotation matrix of the EPIC array
Region_epic<-Results_dmp %>%
select(Row.names, UCSC_RefGene_Group, Relation_to_Island)
Stage1<-Region_epic %>%
mutate(UCSC_RefGene_Group = strsplit(as.character(UCSC_RefGene_Group), ";")) %>%
unnest(UCSC_RefGene_Group)
Stage2<-Stage1 %>%
mutate(Relation_to_Island = strsplit(as.character(Relation_to_Island), ";")) %>%
unnest(Relation_to_Island)
Stage3<-distinct(Stage2)
Regional.Groups<-dplyr::group_by_(Stage3, "UCSC_RefGene_Group", "Relation_to_Island") %>%
tally()
Region.matrix<-Regional.Groups %>%
spread(Relation_to_Island, n)
Region.matrix<-Region.matrix %>%
select(UCSC_RefGene_Group, OpenSea, N_Shelf, N_Shore, Island, S_Shore, S_Shelf)
rownames(Region.matrix)<-Region.matrix$UCSC_RefGene_Group
Region.matrix<-Region.matrix[c("TSS1500", "TSS200", "5'UTR", "1stExon", "Body", "ExonBnd", "3'UTR"),]
rownames(Region.matrix)<-Region.matrix$UCSC_RefGene_Group
Contour_3D_epic<-Region.matrix[,-1]
rownames(Contour_3D_epic)<-Region.matrix$UCSC_RefGene_Group
write.xlsx(Contour_3D_epic, "../3_Output/2_Methyl/Contour.3D_EPIC.xlsx")
##Create a regional annotation matrix of differentially-methylated positions
Region_p05<-Results_dmp_p05 %>% select(Row.names, UCSC_RefGene_Group, Relation_to_Island)
Stage1<-Region_p05 %>% mutate(UCSC_RefGene_Group = strsplit(as.character(UCSC_RefGene_Group), ";")) %>% unnest(UCSC_RefGene_Group)
Stage2<-Stage1 %>% mutate(Relation_to_Island = strsplit(as.character(Relation_to_Island), ";")) %>% unnest(Relation_to_Island)
Stage3<-distinct(Stage2)
Regional.Groups<-dplyr::group_by_(Stage3, "UCSC_RefGene_Group", "Relation_to_Island") %>% tally()
Region.matrix<-Regional.Groups %>% spread(Relation_to_Island, n)
Region.matrix<-Region.matrix %>% select(UCSC_RefGene_Group, OpenSea, N_Shelf, N_Shore, Island, S_Shore, S_Shelf)
rownames(Region.matrix)<-Region.matrix$UCSC_RefGene_Group
Region.matrix<-Region.matrix[c("TSS1500", "TSS200", "5'UTR", "1stExon", "Body", "ExonBnd", "3'UTR"),]
rownames(Region.matrix)<-Region.matrix$UCSC_RefGene_Group
Contour_3D<-Region.matrix[,-1]
rownames(Contour_3D)<-Region.matrix$UCSC_RefGene_Group
write.xlsx(Contour_3D, "../3_Output/2_Methyl/Contour.3D_DMPs.p05.xlsx")
### Identify DMP Enrichment (IMPORTANT)
Enrichment_Region<-Contour_3D/Contour_3D_epic
Promoter_enr<-Enrichment_Region[rownames(Enrichment_Region)=="TSS200",] + Enrichment_Region[rownames(Enrichment_Region)=="TSS1500",]
rownames(Promoter_enr)<-"Promoter"
Enrichment_Region<-Enrichment_Region %>%
filter(!grepl("TSS", rownames(Enrichment_Region))) %>%
rbind(Promoter_enr, .) %>%
data.matrix()
paletteLength<-100
myColor <- colorRampPalette(c("dodgerblue4", "white", "brown4"))(paletteLength)
pheatmap(Enrichment_Region, color = myColor, cluster_rows = FALSE, cluster_cols = FALSE)
##Make a Table of the CpG Methylation Distribution
Enrichment_Region %>% kable( align="c", booktabs=T,
caption="Methylation Distribution") %>%
kable_styling(latex_options=c("striped", "condensed", "repeat_header"))
| OpenSea | N_Shelf | N_Shore | Island | S_Shore | S_Shelf | |
|---|---|---|---|---|---|---|
| Promoter | 0.1285693 | 0.1358225 | 0.1551988 | 0.1823682 | 0.1568289 | 0.1320130 |
| 5’UTR | 0.0574760 | 0.0620397 | 0.0677872 | 0.0905560 | 0.0667659 | 0.0582758 |
| 1stExon | 0.0564209 | 0.0434783 | 0.0705167 | 0.0847120 | 0.0715037 | 0.0453401 |
| Body | 0.0600375 | 0.0646733 | 0.0697822 | 0.0974912 | 0.0749590 | 0.0661616 |
| ExonBnd | 0.0463516 | 0.0348432 | 0.0659091 | 0.0752212 | 0.0555556 | 0.0375940 |
| 3’UTR | 0.0630122 | 0.0531746 | 0.0837796 | 0.1099838 | 0.0596878 | 0.0493359 |
write.xlsx(Enrichment_Region, paste0("../3_Output/2_Methyl/", COMPARISON, "/", COMPARISON, "_DMP.Enrichment_3D.xlsx"), rowNames = TRUE)
color <- colorRampPalette(c("grey", "orange", "red"))
t <- list(
family = "times",
size = 16,
color = "black")
x_axis<-list(title = 'CpG Region',
type="category",
zeroline=TRUE,
showline=TRUE,
zerolinewidth = 4,
zerolinecolor="darkgrey",
linecolor="darkgrey",
linewidth=4,
titlefont=t,
tickfont=t)
y_axis<-list(title = 'Gene Region',
type="category",
zeroline=TRUE,
showline=TRUE,
zerolinewidth = 4,
zerolinecolor="darkgrey",
linecolor="darkgrey",
linewidth=4,
titlefont=t,
tickfont=t)
z_axis<-list(title = 'Number of DMPs',
zerolinewidth = 4,
zerolinecolor="darkgrey",
linecolor="darkgrey",
linewidth=4,
titlefont=t,
tickfont=t)
q<-plot_ly(z=~Enrichment_Region, colors=color(10),
text=as.character(rownames(Enrichment_Region))) %>% add_surface() %>%
layout(scene = list(xaxis = x_axis, yaxis = y_axis, zaxis = z_axis))
q #must comment out for PDF generation via knitr (Pandoc).
library(pheatmap)
library(dplyr)
##Import Data Matrix
# betaHM<-read.csv("../2_Input/EPIC.betaValues.csv", row.names = 1)
## Filters to Apply to DMR
pvalue_threshold=0.05
DMP_location="Island"
Gene_region="TSS"
##Filter Differential Methylation Data
DMR.p05<-Results %>% filter(P.Value<pvalue_threshold)
DMR.p05<-DMR.p05 %>% select(Row.names,
Methylation.Diff,
P.Value,
adj.P.Val,
Relation_to_Island,
UCSC_RefGene_Group,
chr,
pos,
contains("LVAD"))
DMR.p05.Region<-DMR.p05 %>%
# filter(grepl(DMP_location, Relation_to_Island)) %>%
filter(grepl(Gene_region, UCSC_RefGene_Group)) %>%
select(contains("LVAD")) %>%
data.matrix()
#Import the Index File
LVAD_Counts_Data <- targets
rownames(LVAD_Counts_Data)<-targets$Sample_Name
Index<-LVAD_Counts_Data %>% select(Race, Age, BMI)
Index<-as.data.frame(Index)
paletteLength <- 100
ann_colors = list(Race = c(African_American="#1b9e77", Asian_American = "#d95f02", Caucasian_American="#7570b3", Eastern_African = "#e7298a"))
heatmap_DMC<-pheatmap(DMR.p05.Region, scale="row",
cluster_cols = TRUE,
cluster_rows = TRUE,
#breaks = myBreaks,
cutree_cols = 2,
cutree_rows = 2,
angle_col = 45,
fontsize_col = 8,
color = myColor,
show_rownames = FALSE,
border_color = NA,
annotation_col = Index,
annotation_colors=ann_colors,
filename = paste0("../3_Output/2_Methyl/", COMPARISON, "/", COMPARISON, "_", DMP_location, ".", Gene_region,"_", "ALL_SAMPLES.heatmap.pdf"))
heatmap_DMC<-pheatmap(DMR.p05.Region, scale="row",
cluster_cols = TRUE,
cluster_rows = TRUE,
#breaks = myBreaks,
cutree_cols = 2,
cutree_rows = 2,
angle_col = 45,
fontsize_col = 8,
color = myColor,
show_rownames = FALSE,
border_color = NA,
annotation_col = Index,
annotation_colors=ann_colors)
# Load packages
library(dplyr)
library(ggplot2)
library(ggrepel)
library(openxlsx)
#
Results<-read.xlsx(paste0("../3_Output/2_Methyl/", COMPARISON, "/", COMPARISON, "_DMPs.xlsx"), sheet = "P_0.05")
#Read data from the web
Volcano_data = mutate(Results, sig=ifelse(Results$adj.P.Val<0.05 & abs(Results$Methylation.Diff)>10, "Q<0.05 and |Methylation| > 10%", "Not Sig"), minuslogpvalue = -log(P.Value), Methylation=Methylation.Diff)
max(Volcano_data$minuslogpvalue, na.rm = TRUE)
## [1] 36.50796
# Results<-Results %>% filter(grepl("TSS", UCSC_RefGene_Group))
#plot the ggplot
p = ggplot(Volcano_data, aes(Methylation, minuslogpvalue, color = sig)) +
scale_color_manual(values=c('grey','#E69F00'))+
theme(panel.background = element_rect("white", colour = "black", size=2),
panel.grid.major = element_line(colour = "gray50", size=.75),
panel.grid.minor = element_line(colour = "gray50", size=0.4),
legend.position="bottom",
legend.key=element_blank(),
axis.text = element_text(size = 12),
axis.title = element_text(size = 14, face="bold")) +
geom_point(size = 0.08) +
labs(x="Percent Methylation",
y=expression(-Log[10](P-value))
) + xlim(-75,75)+
ylim(0, 28) +
geom_hline(yintercept = 0, size = 1) +
geom_vline(xintercept=0, size=1) +
geom_text_repel(data=filter(Volcano_data, minuslogpvalue>15, abs(Methylation) > 25), aes(label=Name), show_guide = F)
#add a repelling effect to the text labels.
p
pdf(file = paste0("../3_Output/2_Methyl/", COMPARISON, "/", COMPARISON, "Volcano.Plot.pdf"), height = 6, width = 5)
p
dev.off()
## quartz_off_screen
## 2
## Interactive Volcano Plot
Filtered_methyl<-filter(Volcano_data, P.Value<0.05, abs(Methylation.Diff)>5)
library(plotly)
fig <- plot_ly(
Filtered_methyl, x = ~Methylation, y = ~minuslogpvalue,
# Hover text:
text = ~paste("CpG: ", Methylation, '<br>P-value:', minuslogpvalue, '<br>CpG-ID:', Row.names, '<br>CpG-Region:', Relation_to_Island, '<br>Gene-Symbol:', UCSC_RefGene_Name),
color = ~sig, size = ~minuslogpvalue
)
fig
library(dplyr)
library(openxlsx)
library(tidyr)
STATISTIC = 0.05 #P statistic threshold used in this combination.
ifelse(!dir.exists(file.path(paste0("../3_Output/3_Combined/", COMPARISON))), dir.create(file.path(paste0("../3_Output/3_Combined/", COMPARISON))), FALSE)
## [1] FALSE
#Import the differential Methylation data
DEGs<-read.xlsx(paste0("../3_Output/1_RNA/", COMPARISON, "/", COMPARISON, "_DESeq2.xlsx"), sheet = "P_0.05")
colnames(DEGs)<-paste0("RNA_",colnames(DEGs))
DEGs$Gene.Symbol<-DEGs$RNA_external_gene_name
DMPs<-read.xlsx(paste0("../3_Output/2_Methyl/", COMPARISON, "/", COMPARISON, "_DMPs.xlsx"), sheet = "P_0.05")
colnames(DMPs)<-paste0("Methyl_", colnames(DMPs))
##
DMPs_separated<-DMPs %>% mutate(DMPs, chromStart=Methyl_pos, chromEnd=Methyl_pos+1, Gene.Symbol = strsplit(as.character(Methyl_UCSC_RefGene_Name), ";")) %>% unnest(Gene.Symbol) %>% distinct()
DMPs_separated$Gene.Symbol<-as.character(DMPs_separated$Gene.Symbol)
write.csv(DMPs_separated, "DMPs_separated.csv")
#Merge the datasets
DMPs_DEGs<-inner_join(DEGs, DMPs_separated, by="Gene.Symbol")
DMPs_promoter.DEGs<-dplyr::filter(DMPs_DEGs, grepl("TSS", Methyl_UCSC_RefGene_Group), RNA_pvalue<0.05) %>% filter((Methyl_Methylation.Diff>0 & RNA_log2FoldChange<0) | (Methyl_Methylation.Diff<0 & RNA_log2FoldChange>0))
Up.DEGs<-dplyr::filter(DMPs_promoter.DEGs, RNA_log2FoldChange<0)
Down.DEGs<-dplyr::filter(DMPs_promoter.DEGs, RNA_log2FoldChange>0)
#Body Promoter DEGs
DMPs_body.DEGs<-DMPs_DEGs %>% filter(grepl("Body", Methyl_UCSC_RefGene_Group), RNA_pvalue<0.05) %>% filter((Methyl_Methylation.Diff>0 & RNA_log2FoldChange>0) | (Methyl_Methylation.Diff<0 & RNA_log2FoldChange<0))
library(openxlsx)
wb_combine<-createWorkbook()
#Unfiltered
addWorksheet(wb_combine, "Inverse Promoter")
writeData(wb_combine, "Inverse Promoter", DMPs_promoter.DEGs, startCol = 1)
addWorksheet(wb_combine, "Direct Body")
writeData(wb_combine, "Direct Body", DMPs_body.DEGs, startCol = 1)
saveWorkbook(wb_combine, file = paste0("../3_Output/3_Combined/", COMPARISON,"/",COMPARISON, "_Inverse_DMPs.Promoter.xlsx"), overwrite = TRUE)
##Combined Heatmap
library(ComplexHeatmap)
library(openxlsx)
library(dplyr)
# detach("package:pheatmap", unload=TRUE)
#Index
Index_hm<-read.xlsx("../2_Input/1_Patient/colData_CHAAMPS.FINAL.xlsx", rowNames = T, startRow = 2)
Index_hm<-Index_hm %>%
subset(Race %in% RACE) %>%
filter(rownames(.)!="LVAD054") %>%
select(Race, Age, BMI, Cardiac.Index)
#Gene Expression
DEG_hm.prom<-DMPs_promoter.DEGs %>% select(contains("RNA_LVAD")) %>% data.matrix()
rownames(DEG_hm.prom)<-make.unique(DMPs_promoter.DEGs$RNA_external_gene_name, sep = ".")
colnames(DEG_hm.prom)<-gsub('RNA_','',colnames(DEG_hm.prom)) #Remove RNA_ prefix from column names
DEG_hm.prom<-t(scale(t(DEG_hm.prom)))
DMP_hm.prom<-DMPs_promoter.DEGs %>% select(contains("Methyl_LVAD")) %>% data.matrix()
rownames(DMP_hm.prom)<-make.unique(DMPs_promoter.DEGs$RNA_external_gene_name, sep = ".")
colnames(DMP_hm.prom)<-gsub('Methyl_','',colnames(DMP_hm.prom)) #Remove Methyl_ prefix from column names
DMP_hm.prom<-t(scale(t(DMP_hm.prom)))
#Make heatmap for DMPs
paletteLength <- 100
myColor_DMC <- colorRampPalette(c("cyan4", "white", "firebrick2"))(paletteLength)
ann_colors = list(Race = c(African_American="#1b9e77", Asian_American = "#d95f02", Caucasian_American="#7570b3", Eastern_African = "#e7298a"),
BMI = brewer.pal(6, "Blues"),
Age = brewer.pal(6, "Purples"),
Cardiac.Index = brewer.pal(6, "Reds")
)
heatmap_DMC<-pheatmap(DMP_hm.prom, scale="none",
cluster_cols = TRUE,
cluster_rows = TRUE,
cutree_rows = 2,
fontsize_col = 8,
color = myColor_DMC,
clustering_distance_cols = "correlation",
show_colnames = F,
show_rownames = FALSE,
border_color = NA,
annotation_col = Index_hm,
annotation_colors=ann_colors,
annotation_legend = F,
filename = paste0("../3_Output/3_Combined/", COMPARISON, "/", COMPARISON, "_", DMP_location, ".", Gene_region,"_", "DMP.promoters.heatmap.pdf"))
#DEG Heatmap
colnames_ordered<-colnames(DMP_hm.prom)[column_order(heatmap_DMC)] #Get column order from the DMC Heatmap
Testing<-DEG_hm.prom[,match(colnames_ordered, colnames(DEG_hm.prom))]
paletteLength <- 100
myColor <- colorRampPalette(c("dodgerblue4", "white", "gold2"))(paletteLength) #DEG Colors
heatmap_DEG<-pheatmap(Testing, scale="row",
cluster_cols = T,
cluster_rows = TRUE,
cutree_rows = 2,
fontsize_col = 8,
color = myColor,
clustering_distance_cols = "correlation",
show_colnames = F,
show_rownames = FALSE,
border_color = NA,
annotation_col = Index_hm,
annotation_colors=ann_colors,
filename = paste0("../3_Output/3_Combined/", COMPARISON, "/", COMPARISON, "_", DMP_location, ".", Gene_region,"_", "DEG.promoters.heatmap.pdf"))
pdf(file = paste0("../3_Output/3_Combined/",
COMPARISON, "/",
COMPARISON, "_",
DMP_location, ".",
Gene_region,"_",
"DMC.DEG_Overlapping.Heatmap.pdf"),
height = 8,
width = 10
)
heatmap_DMC + heatmap_DEG
dev.off()
## quartz_off_screen
## 2
heatmap_DMC + heatmap_DEG
##Dendrogram Link
library(tidyverse) # data manipulation
library(cluster) # clustering algorithms
library(factoextra) # clustering visualization
library(dendextend) # for comparing two dendrograms
##Methylation
res.dist_DMP <- dist(t(DMP_hm.prom), method = "euclidean")
hc1 <- hclust(res.dist_DMP, method = "ward.D2")
dend1 <- as.dendrogram (hc1)
colors_to_use <- as.numeric(targets_filtered$Race)
colors_to_use <- colors_to_use[order.dendrogram(dend1)]
labels_colors(dend1)<-colors_to_use
##DEG
res.dist_DEG <- dist(t(DEG_hm.prom), method = "euclidean")
hc2 <- hclust(res.dist_DEG, method = "ward.D2")
dend2 <- as.dendrogram (hc2)
colors_to_use2 <- as.numeric(targets_filtered$Race)
colors_to_use2 <- colors_to_use2[order.dendrogram(dend2)]
labels_colors(dend2)<-colors_to_use2
#
dend_list <- dendlist(dend1, dend2)
#
dendTangle<-dend_list %>% untangle(method = "step1side")
##
Test2<-tanglegram(dendTangle, sort = FALSE, common_subtrees_color_lines = TRUE, highlight_distinct_edges = TRUE, highlight_branches_lwd = TRUE, lwd = 2, edge.lwd = 2, lab.cex=.7)
pdf(file = "../3_Output/3_Combined/TANGLE.pdf", height = 8, width = 10)
tanglegram(dendTangle, sort = FALSE, common_subtrees_color_lines = TRUE, highlight_distinct_edges = TRUE, highlight_branches_lwd = TRUE, lwd = 2, edge.lwd = 2, lab.cex=.7)
dev.off()
## quartz_off_screen
## 2
entanglement(Test2)
## [1] 0.1390582
cors <- cor.dendlist(Test2)
ha_index<-select(targets_filtered, Race, HbA1C, BMI)
rownames(ha_index)<-targets_filtered$Sample_Name
ha = HeatmapAnnotation(df = ha_index)
# Print correlation matrix
library(ComplexHeatmap)
p1=ComplexHeatmap::pheatmap(DMP_hm.prom, scale = "row")
p2=Heatmap(scale(DEG_hm.prom), name = "RNA-Seq", km = 2, top_annotation = ha)
p1+p2
##Circos Plot
library(dplyr)
#create gene labels
Gene_labels_Body<-DMPs_body.DEGs%>% dplyr::filter(abs(RNA_log2FoldChange)>.585, grepl("Body", Methyl_UCSC_RefGene_Group)) %>% dplyr::filter(abs(Methyl_Methylation.Diff)>5) %>% dplyr::select(chrom=Methyl_chr, chromStart=RNA_start_position, chromEnd=RNA_end_position, GeneSymbol=RNA_external_gene_name, RNA_padj) %>% distinct() %>% dplyr::top_n(50, RNA_padj) %>% select(-RNA_padj)
Gene_labels_Body<-arrange(Gene_labels_Body, chromStart)
Gene_labels_Body$chrom<-factor(Gene_labels_Body$chrom, levels=c("chr1", "chr2", "chr3", "chr4",
"chr5", "chr6", "chr7", "chr8",
"chr9", "chr10", "chr11", "chr12",
"chr13", "chr14", "chr15", "chr16",
"chr17", "chr18", "chr19", "chr20",
"chr21", "chr22", "chr23", "chrX",
"chrY"))
Gene_labels_Body<-Gene_labels_Body[order(Gene_labels_Body$chrom),]
Gene_labels_Body<-Gene_labels_Body[!duplicated(Gene_labels_Body[,4]),]
Gene_labels_Body$Color<-"gray80" #Color the text of the corresponding circos
# Gene Labels based on Genomic Region
Gene_labels_Promoter<-DMPs_promoter.DEGs %>% dplyr::filter(abs(RNA_log2FoldChange)>.585, grepl("TSS", Methyl_UCSC_RefGene_Group)) %>% dplyr::filter(abs(Methyl_Methylation.Diff)>5) %>% dplyr::select(chrom=Methyl_chr, chromStart=RNA_start_position, chromEnd=RNA_end_position, GeneSymbol=RNA_external_gene_name, RNA_padj) %>% distinct() %>% dplyr::top_n(50, RNA_padj) %>% select(-RNA_padj)
Gene_labels_Promoter<-arrange(Gene_labels_Promoter, chromStart)
Gene_labels_Promoter$chrom<-factor(Gene_labels_Promoter$chrom, levels=c("chr1", "chr2", "chr3", "chr4",
"chr5", "chr6", "chr7", "chr8",
"chr9", "chr10", "chr11", "chr12",
"chr13", "chr14", "chr15", "chr16",
"chr17", "chr18", "chr19", "chr20",
"chr21", "chr22", "chr23", "chrX",
"chrY"))
Gene_labels_Promoter<-Gene_labels_Promoter[order(Gene_labels_Promoter$chrom),]
Gene_labels_Promoter<-Gene_labels_Promoter[!duplicated(Gene_labels_Promoter[,4]),]
Gene_labels_Promoter$Color<-"gray40" #Color the text of the corresponding circos
# Create a composite Labels frame with coloring based on CpG Region
Gene.labels<-rbind(Gene_labels_Body, Gene_labels_Promoter)
Gene.labels<-Gene.labels[order(Gene.labels$chrom),]
##Gene Expression
##Fold Change UP
Gene_FoldChange.UP<-dplyr::select(DMPs_DEGs, chrom=Methyl_chr,
chromStart, chromEnd, FoldChange_DEG=RNA_log2FoldChange)
Gene_FoldChange.UP<-dplyr::filter(Gene_FoldChange.UP, FoldChange_DEG>0)
# Gene_FoldChange.UP<-dplyr::mutate(Gene_FoldChange.UP, chromEnd=chromStart+1)
Gene_FoldChange.UP<-dplyr::select(Gene_FoldChange.UP, chrom, chromStart, chromEnd, FoldChange_DEG)
Gene_FoldChange.UP<-arrange(Gene_FoldChange.UP, chromStart)
Gene_FoldChange.UP$chrom<-factor(Gene_FoldChange.UP$chrom, levels=c("chr1", "chr2", "chr3", "chr4",
"chr5", "chr6", "chr7", "chr8",
"chr9", "chr10", "chr11", "chr12",
"chr13", "chr14", "chr15", "chr16",
"chr17", "chr18", "chr19", "chr20",
"chr21", "chr22", "chr23", "chrX",
"chrY"))
Gene_FoldChange.UP<-Gene_FoldChange.UP[order(Gene_FoldChange.UP$chrom),]
##Fold Change DOWN
Gene_FoldChange.DOWN<-dplyr::select(DMPs_DEGs, chrom=Methyl_chr,
chromStart, chromEnd, FoldChange_DEG=RNA_log2FoldChange)
Gene_FoldChange.DOWN<-dplyr::filter(Gene_FoldChange.DOWN, FoldChange_DEG<0)
# Gene_FoldChange.DOWN<-dplyr::mutate(Gene_FoldChange.DOWN, chromEnd=chromStart+1)
Gene_FoldChange.DOWN<-dplyr::select(Gene_FoldChange.DOWN, chrom, chromStart, chromEnd, FoldChange_DEG)
Gene_FoldChange.DOWN<-arrange(Gene_FoldChange.DOWN, chromStart)
Gene_FoldChange.DOWN$chrom<-factor(Gene_FoldChange.DOWN$chrom, levels=c("chr1", "chr2", "chr3", "chr4",
"chr5", "chr6", "chr7", "chr8",
"chr9", "chr10", "chr11", "chr12",
"chr13", "chr14", "chr15", "chr16",
"chr17", "chr18", "chr19", "chr20",
"chr21", "chr22", "chr23", "chrX",
"chrY"))
Gene_FoldChange.DOWN<-Gene_FoldChange.DOWN[order(Gene_FoldChange.DOWN$chrom),]
##Fold Change List
Gene_FoldChange_List<-list(Gene_FoldChange.UP, Gene_FoldChange.DOWN)
# Methylation Density - Islands
DMR_Islands<-DMPs %>% dplyr::filter(Methyl_Relation_to_Island=="Island") %>% select(chrom=Methyl_chr, Methyl_pos, perc.change=Methyl_Methylation.Diff)
DMR_Islands<-dplyr::filter(DMR_Islands, chrom!="chrM")
DMR_Islands<-dplyr::mutate(DMR_Islands, chromEnd=Methyl_pos+1) %>% select(chrom, chromStart=Methyl_pos, chromEnd, perc.change)
DMR_Islands$chrom<-factor(DMR_Islands$chrom, levels=c("chr1", "chr2", "chr3", "chr4",
"chr5", "chr6", "chr7", "chr8",
"chr9", "chr10", "chr11", "chr12",
"chr13", "chr14", "chr15", "chr16",
"chr17", "chr18", "chr19", "chr20",
"chr21", "chr22", "chr23", "chrX",
"chrY"))
DMR_Islands<-DMR_Islands[order(DMR_Islands$chrom),]
Methyl.UP.Island<-filter(DMR_Islands, perc.change>0)
Methyl.DOWN.Island<-filter(DMR_Islands, perc.change<0)
Methyl.List.island<-list(Methyl.DOWN.Island, Methyl.UP.Island)
# Methylation Density - Seas
DMR_Sea<-DMPs %>% dplyr::filter(Methyl_Relation_to_Island=="OpenSea") %>% select(chrom=Methyl_chr, Methyl_pos, perc.change=Methyl_Methylation.Diff)
DMR_Sea<-dplyr::filter(DMR_Sea, chrom!="chrM")
DMR_Sea<-dplyr::mutate(DMR_Sea, chromEnd=Methyl_pos+1) %>% select(chrom, chromStart=Methyl_pos, chromEnd, perc.change)
DMR_Sea$chrom<-factor(DMR_Sea$chrom, levels=c("chr1", "chr2", "chr3", "chr4",
"chr5", "chr6", "chr7", "chr8",
"chr9", "chr10", "chr11", "chr12",
"chr13", "chr14", "chr15", "chr16",
"chr17", "chr18", "chr19", "chr20",
"chr21", "chr22", "chr23", "chrX",
"chrY"))
DMR_Sea<-DMR_Sea[order(DMR_Sea$chrom),]
Methyl.UP.Sea<-filter(DMR_Sea, perc.change>0)
Methyl.DOWN.Sea<-filter(DMR_Sea, perc.change<0)
Methyl.List.Sea<-list(Methyl.DOWN.Sea, Methyl.UP.Sea)
# All DMPs
CpG_EPIC<-DMPs %>% dplyr::select(chrom=Methyl_chr, Methyl_pos, perc.change=Methyl_Methylation.Diff)
CpG_EPIC<-dplyr::filter(CpG_EPIC, chrom!="chrM")
CpG_EPIC<-dplyr::mutate(CpG_EPIC, chromEnd=Methyl_pos+1) %>% select(chrom, chromStart=Methyl_pos, chromEnd, perc.change)
CpG_EPIC$chrom<-factor(CpG_EPIC$chrom, levels=c("chr1", "chr2", "chr3", "chr4",
"chr5", "chr6", "chr7", "chr8",
"chr9", "chr10", "chr11", "chr12",
"chr13", "chr14", "chr15", "chr16",
"chr17", "chr18", "chr19", "chr20",
"chr21", "chr22", "chr23", "chrX",
"chrY"))
CpG_EPIC<-CpG_EPIC[order(CpG_EPIC$chrom),]
Methyl.UP.EPIC<-filter(CpG_EPIC, perc.change>0)
Methyl.DOWN.EPIC<-filter(CpG_EPIC, perc.change<0)
Methyl.List.EPIC<-list(Methyl.DOWN.EPIC, Methyl.UP.EPIC)
Methyl.List<-list(DMR_Sea,DMR_Islands)
#Plot the Circos
library(circlize)
library(gtools)
library(dplyr)
circos.genomicDensity1 = function (data, ylim.force = FALSE, window.size = NULL, overlap = TRUE, col = ifelse(area, "grey", "black"), lwd = par("lwd"), lty = par("lty"), type = "l", area = TRUE, area.baseline = NULL, baseline = 0, border = NA, ...) { if (!is.null(area.baseline))
data = normalizeToDataFrame(data)
if (!is.dataFrameList(data)) {
data = list(data)
}
if (length(col) == 1) {
col = rep(col, length(data))
}
if (length(lwd) == 1) {
lwd = rep(lwd, length(data))
}
if (length(lty) == 1) {
lty = rep(lty, length(data))
}
if (length(type) == 1) {
type = rep(type, length(data))
}
if (length(area) == 1) {
area = rep(area, length(data))
}
if (length(baseline) == 1) {
baseline = rep(baseline, length(data))
}
if (length(border) == 1) {
border = rep(border, length(data))
}
s = sapply(get.all.sector.index(), function(si) get.cell.meta.data("xrange",
sector.index = si))
if (is.null(window.size)) {
window.size = 10^nchar(sum(s))/1000
}
df = vector("list", length = length(data))
for (i in seq_along(data)) {
all.chr = unique(data[[i]][[1]])
for (chr in all.chr) {
region = data[[i]][data[[i]][[1]] == chr, 2:3, drop = FALSE]
dn = genomicDensity(region, window.size = window.size,
overlap = overlap)
dn = cbind(rep(chr, nrow(dn)), dn)
df[[i]] = rbind(df[[i]], dn)
}
}
if (ylim.force) {
ymax = 1
}
else {
ymax = max(sapply(df, function(gr) max(gr[[4]])))
}
circos.genomicTrackPlotRegion(df, ylim = c(-ymax,0), panel.fun = function(region,
value, ...) {
i = getI(...)
circos.genomicLines(region, -value, col = col[i], lwd = lwd[i],
lty = lty[i], type = type[i], border = border[i],
area = area[i], baseline = baseline[i])
}, ...)
}
environment(circos.genomicDensity1) <- asNamespace('circlize')
#to get error line number:
f <- function (data, ylim.force = FALSE, window.size = NULL, overlap = TRUE,
col = ifelse(area, "grey", "black"), lwd = par("lwd"), lty = par("lty"),
type = "l", area = TRUE, area.baseline = NULL, baseline = 0,
border = NA, ...)
{
circos.genomicDensity1(data, ylim.force = FALSE, window.size = NULL, overlap = TRUE,
col = ifelse(area, "grey", "black"), lwd = par("lwd"), lty = par("lty"),
type = "l", area = TRUE, area.baseline = NULL, baseline = 0,
border = NA, ...)
}
###########################################################
# pdf(file="trial_2.pdf",width=10,height=10)
# par(mar = c(1, 1, 1, 1))
# circos.par(gap.degree=1, track.margin = c(0, 0))
# circos.initializeWithIdeogram(track.height = 0.05)
# circos.genomicDensity(Methyl.UP, col = c("goldenrod3"), track.height = 0.1, baseline="bottom", bg.border ="white", track.margin = c(0, 0.0))
# circos.genomicDensity1(Methyl.DOWN, col = c("dodgerblue3"), track.height = 0.1, baseline="top", bg.border ="white", track.margin = c(0, 0.0))
# circos.clear()
# dev.off()
######################################################
om = circos.par("track.margin")
oc = circos.par("cell.padding")
circos.par(track.margin = c(0, 0), cell.padding = c(0, 0, 0, 0))
circos.par(start.degree = -250)
pdf(file=paste0("../3_Output/3_Combined/", COMPARISON, "/", COMPARISON, "_Circos.pdf"))
circos.initializeWithIdeogram(track.height = 0.05)
circos.genomicDensity(Methyl.List, col=add_transparency(c("gray80", "gray40"), transparency = 0.2) ,
track.height=0.2, bg.border=NA)
# ### Labels for DMRs in Islands
# circos.genomicDensity(Methyl.UP.Island, col = c("coral2"), track.height = 0.1, baseline="bottom", bg.border ="white", track.margin = c(0, 0.0))
# circos.genomicDensity1(Methyl.DOWN.Island, col = c("darkcyan"), track.height = 0.1, baseline="top", bg.border ="white", track.margin = c(0, 0.0))
# ### Labels for DMRs in Body
# circos.genomicDensity(Methyl.UP.Body, col = c("coral2"), track.height = 0.1, baseline="bottom", bg.border ="white", track.margin = c(0, 0.0))
# circos.genomicDensity1(Methyl.DOWN.Body, col = c("darkcyan"), track.height = 0.1, baseline="top", bg.border ="white", track.margin = c(0, 0.0))
#DEG with inverse GPI Islands Promoters
circos.genomicTrackPlotRegion(Gene_FoldChange_List,
ylim = c(-6, 6), bg.border=NA,
panel.fun = function(region, value, ...) {
col = ifelse(value[[1]] > 0, "darkgoldenrod1", "dodgerblue2")
circos.genomicPoints(region, value, col = add_transparency(col, 0.2), cex = 0.3, pch = 16)
cell.xlim = get.cell.meta.data("cell.xlim")
for(h in c(-3, -1.5, 0, 1.5, 3)) {
circos.lines(cell.xlim, c(h, h), col ="#00000040")
}
}, track.height = 0.2)
circos.genomicLabels(Gene.labels, labels.column=4, side='inside', col = Gene.labels$Color ,cex=0.6)
# circos.par(track.margin=om, cell.padding=oc)
# ## Add link for all DEGs with DMRs in promoter CGIs
# Link_Anchor <- read.csv("../1_Input/4_Combined/Circos/Link_Anchor.csv")
# Link<-read.csv("../1_Input/4_Combined/Circos/Link_DEG.DMR_Promoter.CGI_P<0.05.csv")
# Link$chrom<-factor(Link$chrom, levels=c("chr1", "chr2", "chr3", "chr4",
# "chr5", "chr6", "chr7", "chr8",
# "chr9", "chr10", "chr11", "chr12",
# "chr13", "chr14", "chr15", "chr16",
# "chr17", "chr18", "chr19", "chr20",
# "chr21", "chr22", "chr23", "chrX",
# "chrY"))
# Link<-Link[order(Link$chrom),]
# Link_Anchor<-Link_Anchor[1:nrow(Link),]
# circos.genomicLink(Link, Link_Anchor, col="black", lwd=0.5)
circos.clear()
dev.off()
## quartz_off_screen
## 2
om = circos.par("track.margin")
oc = circos.par("cell.padding")
circos.par(track.margin = c(0, 0), cell.padding = c(0, 0, 0, 0))
circos.par(start.degree = -250)
circos.initializeWithIdeogram(track.height = 0.05)
circos.genomicDensity(Methyl.List, col=add_transparency(c("gray80", "gray40"), transparency = 0.2) ,
track.height=0.2, bg.border=NA)
# ### Labels for DMRs in Islands
# circos.genomicDensity(Methyl.UP.Island, col = c("coral2"), track.height = 0.1, baseline="bottom", bg.border ="white", track.margin = c(0, 0.0))
# circos.genomicDensity1(Methyl.DOWN.Island, col = c("darkcyan"), track.height = 0.1, baseline="top", bg.border ="white", track.margin = c(0, 0.0))
# ### Labels for DMRs in Body
# circos.genomicDensity(Methyl.UP.Body, col = c("coral2"), track.height = 0.1, baseline="bottom", bg.border ="white", track.margin = c(0, 0.0))
# circos.genomicDensity1(Methyl.DOWN.Body, col = c("darkcyan"), track.height = 0.1, baseline="top", bg.border ="white", track.margin = c(0, 0.0))
#DEG with inverse GPI Islands Promoters
circos.genomicTrackPlotRegion(Gene_FoldChange_List,
ylim = c(-6, 6), bg.border=NA,
panel.fun = function(region, value, ...) {
col = ifelse(value[[1]] > 0, "darkgoldenrod1", "dodgerblue2")
circos.genomicPoints(region, value, col = add_transparency(col, 0.2), cex = 0.3, pch = 16)
cell.xlim = get.cell.meta.data("cell.xlim")
for(h in c(-3, -1.5, 0, 1.5, 3)) {
circos.lines(cell.xlim, c(h, h), col ="#00000040")
}
}, track.height = 0.2)
circos.genomicLabels(Gene.labels, labels.column=4, side='inside', col = Gene.labels$Color ,cex=0.6)
circos.clear()
All packages and setting are acquired using the following command:
options(kableExtra.latex.load_packages = FALSE)
library(kableExtra)
sinfo<-devtools::session_info()
sinfo$platform
## setting value
## version R version 4.0.3 (2020-10-10)
## os macOS Big Sur 10.16
## system x86_64, darwin17.0
## ui X11
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz Europe/Berlin
## date 2021-01-21
sinfo$packages %>% kable(
align="c",
longtable=T,
booktabs=T,
caption="Packages and Required Dependencies") %>%
kable_styling(latex_options=c("striped", "repeat_header", "condensed"))
| package | ondiskversion | loadedversion | path | loadedpath | attached | is_base | date | source | md5ok | library | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| abind | abind | 1.4.5 | 1.4-5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/abind | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/abind | FALSE | FALSE | 2016-07-21 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| annotate | annotate | 1.68.0 | 1.68.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/annotate | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/annotate | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| AnnotationDbi | AnnotationDbi | 1.52.0 | 1.52.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/AnnotationDbi | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/AnnotationDbi | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| AnnotationFilter | AnnotationFilter | 1.14.0 | 1.14.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/AnnotationFilter | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/AnnotationFilter | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| AnnotationHub | AnnotationHub | 2.22.0 | 2.22.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/AnnotationHub | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/AnnotationHub | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| askpass | askpass | 1.1 | 1.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/askpass | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/askpass | FALSE | FALSE | 2019-01-13 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| assertthat | assertthat | 0.2.1 | 0.2.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/assertthat | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/assertthat | FALSE | FALSE | 2019-03-21 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| backports | backports | 1.2.1 | 1.2.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/backports | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/backports | FALSE | FALSE | 2020-12-09 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| base64 | base64 | 2.0 | 2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/base64 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/base64 | FALSE | FALSE | 2016-05-10 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| base64enc | base64enc | 0.1.3 | 0.1-3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/base64enc | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/base64enc | FALSE | FALSE | 2015-07-28 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| beanplot | beanplot | 1.2 | 1.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/beanplot | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/beanplot | FALSE | FALSE | 2014-09-19 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| BiasedUrn | BiasedUrn | 1.7 | 1.07 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiasedUrn | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiasedUrn | FALSE | FALSE | 2015-12-28 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Biobase | Biobase | 2.50.0 | 2.50.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Biobase | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Biobase | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| BiocFileCache | BiocFileCache | 1.14.0 | 1.14.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocFileCache | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocFileCache | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| BiocGenerics | BiocGenerics | 0.36.0 | 0.36.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocGenerics | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocGenerics | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| BiocManager | BiocManager | 1.30.10 | 1.30.10 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocManager | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocManager | FALSE | FALSE | 2019-11-16 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| BiocParallel | BiocParallel | 1.24.1 | 1.24.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocParallel | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocParallel | FALSE | FALSE | 2020-11-06 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| BiocVersion | BiocVersion | 3.12.0 | 3.12.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocVersion | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BiocVersion | FALSE | FALSE | 2020-05-14 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| biomaRt | biomaRt | 2.46.0 | 2.46.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/biomaRt | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/biomaRt | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Biostrings | Biostrings | 2.58.0 | 2.58.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Biostrings | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Biostrings | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| biovizBase | biovizBase | 1.38.0 | 1.38.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/biovizBase | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/biovizBase | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| bit | bit | 4.0.4 | 4.0.4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bit | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bit | FALSE | FALSE | 2020-08-04 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| bit64 | bit64 | 4.0.5 | 4.0.5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bit64 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bit64 | FALSE | FALSE | 2020-08-30 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| bitops | bitops | 1.0.6 | 1.0-6 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bitops | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bitops | FALSE | FALSE | 2013-08-17 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| blob | blob | 1.2.1 | 1.2.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/blob | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/blob | FALSE | FALSE | 2020-01-20 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| broom | broom | 0.7.3 | 0.7.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/broom | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/broom | FALSE | FALSE | 2020-12-16 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| BSgenome | BSgenome | 1.58.0 | 1.58.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BSgenome | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/BSgenome | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| bsseq | bsseq | 1.26.0 | 1.26.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bsseq | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bsseq | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| bumphunter | bumphunter | 1.32.0 | 1.32.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bumphunter | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/bumphunter | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Cairo | Cairo | 1.5.12.2 | 1.5-12.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Cairo | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Cairo | FALSE | FALSE | 2020-07-07 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| calibrate | calibrate | 1.7.7 | 1.7.7 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/calibrate | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/calibrate | TRUE | FALSE | 2020-06-19 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| callr | callr | 3.5.1 | 3.5.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/callr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/callr | FALSE | FALSE | 2020-10-13 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| car | car | 3.0.10 | 3.0-10 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/car | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/car | FALSE | FALSE | 2020-09-29 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| carData | carData | 3.0.4 | 3.0-4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/carData | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/carData | FALSE | FALSE | 2020-05-22 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| cellranger | cellranger | 1.1.0 | 1.1.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/cellranger | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/cellranger | FALSE | FALSE | 2016-07-27 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| checkmate | checkmate | 2.0.0 | 2.0.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/checkmate | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/checkmate | FALSE | FALSE | 2020-02-06 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| circlize | circlize | 0.4.12 | 0.4.12 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/circlize | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/circlize | TRUE | FALSE | 2021-01-08 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Ckmeans.1d.dp | Ckmeans.1d.dp | 4.3.3 | 4.3.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Ckmeans.1d.dp | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Ckmeans.1d.dp | TRUE | FALSE | 2020-07-22 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| cli | cli | 2.2.0 | 2.2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/cli | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/cli | FALSE | FALSE | 2020-11-20 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| clue | clue | 0.3.58 | 0.3-58 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/clue | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/clue | FALSE | FALSE | 2020-12-03 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| cluster | cluster | 2.1.0 | 2.1.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/cluster | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/cluster | TRUE | FALSE | 2019-06-19 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| codetools | codetools | 0.2.18 | 0.2-18 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/codetools | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/codetools | FALSE | FALSE | 2020-11-04 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| colorspace | colorspace | 2.0.0 | 2.0-0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/colorspace | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/colorspace | FALSE | FALSE | 2020-11-11 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ComplexHeatmap | ComplexHeatmap | 2.6.2 | 2.6.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ComplexHeatmap | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ComplexHeatmap | TRUE | FALSE | 2020-11-12 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| corrplot | corrplot | 0.84 | 0.84 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/corrplot | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/corrplot | TRUE | FALSE | 2017-10-16 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| cowplot | cowplot | 1.1.1 | 1.1.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/cowplot | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/cowplot | TRUE | FALSE | 2020-12-30 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| crayon | crayon | 1.3.4 | 1.3.4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/crayon | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/crayon | FALSE | FALSE | 2017-09-16 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| crosstalk | crosstalk | 1.1.1 | 1.1.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/crosstalk | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/crosstalk | FALSE | FALSE | 2021-01-12 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| curl | curl | 4.3 | 4.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/curl | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/curl | FALSE | FALSE | 2019-12-02 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| data.table | data.table | 1.13.6 | 1.13.6 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/data.table | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/data.table | TRUE | FALSE | 2020-12-30 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| DBI | DBI | 1.1.1 | 1.1.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DBI | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DBI | FALSE | FALSE | 2021-01-15 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| dbplyr | dbplyr | 2.0.0 | 2.0.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/dbplyr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/dbplyr | TRUE | FALSE | 2020-11-03 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| DelayedArray | DelayedArray | 0.16.0 | 0.16.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DelayedArray | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DelayedArray | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| DelayedMatrixStats | DelayedMatrixStats | 1.12.2 | 1.12.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DelayedMatrixStats | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DelayedMatrixStats | FALSE | FALSE | 2021-01-12 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| dendextend | dendextend | 1.14.0 | 1.14.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/dendextend | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/dendextend | TRUE | FALSE | 2020-08-26 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| desc | desc | 1.2.0 | 1.2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/desc | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/desc | FALSE | FALSE | 2018-05-01 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| DESeq2 | DESeq2 | 1.30.0 | 1.30.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DESeq2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DESeq2 | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| devtools | devtools | 2.3.2 | 2.3.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/devtools | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/devtools | FALSE | FALSE | 2020-09-18 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| dichromat | dichromat | 2.0.0 | 2.0-0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/dichromat | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/dichromat | FALSE | FALSE | 2013-01-24 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| digest | digest | 0.6.27 | 0.6.27 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/digest | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/digest | FALSE | FALSE | 2020-10-24 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| DMRcate | DMRcate | 2.4.1 | 2.4.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DMRcate | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DMRcate | TRUE | FALSE | 2021-01-14 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| DMRcatedata | DMRcatedata | 2.8.0 | 2.8.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DMRcatedata | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DMRcatedata | TRUE | FALSE | 2020-10-29 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| doRNG | doRNG | 1.8.2 | 1.8.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/doRNG | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/doRNG | FALSE | FALSE | 2020-01-27 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| dplyr | dplyr | 1.0.3 | 1.0.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/dplyr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/dplyr | TRUE | FALSE | 2021-01-15 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| DSS | DSS | 2.38.0 | 2.38.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DSS | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/DSS | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| edgeR | edgeR | 3.32.1 | 3.32.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/edgeR | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/edgeR | FALSE | FALSE | 2021-01-14 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ellipsis | ellipsis | 0.3.1 | 0.3.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ellipsis | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ellipsis | FALSE | FALSE | 2020-05-15 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ensembldb | ensembldb | 2.14.0 | 2.14.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ensembldb | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ensembldb | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| evaluate | evaluate | 0.14 | 0.14 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/evaluate | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/evaluate | FALSE | FALSE | 2019-05-28 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ExperimentHub | ExperimentHub | 1.16.0 | 1.16.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ExperimentHub | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ExperimentHub | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| factoextra | factoextra | 1.0.7 | 1.0.7 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/factoextra | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/factoextra | TRUE | FALSE | 2020-04-01 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| fansi | fansi | 0.4.2 | 0.4.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/fansi | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/fansi | FALSE | FALSE | 2021-01-15 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| farver | farver | 2.0.3 | 2.0.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/farver | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/farver | FALSE | FALSE | 2020-01-16 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| fastmap | fastmap | 1.0.1 | 1.0.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/fastmap | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/fastmap | FALSE | FALSE | 2019-10-08 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ff | ff | 4.0.4 | 4.0.4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ff | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ff | FALSE | FALSE | 2020-10-13 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| forcats | forcats | 0.5.0 | 0.5.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/forcats | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/forcats | TRUE | FALSE | 2020-03-01 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| foreach | foreach | 1.5.1 | 1.5.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/foreach | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/foreach | TRUE | FALSE | 2020-10-15 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| foreign | foreign | 0.8.81 | 0.8-81 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/foreign | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/foreign | FALSE | FALSE | 2020-12-22 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Formula | Formula | 1.2.4 | 1.2-4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Formula | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Formula | TRUE | FALSE | 2020-10-16 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| fs | fs | 1.5.0 | 1.5.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/fs | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/fs | FALSE | FALSE | 2020-07-31 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| gbRd | gbRd | 0.4.11 | 0.4-11 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/gbRd | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/gbRd | FALSE | FALSE | 2012-10-01 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| genefilter | genefilter | 1.72.0 | 1.72.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/genefilter | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/genefilter | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| geneplotter | geneplotter | 1.68.0 | 1.68.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/geneplotter | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/geneplotter | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| generics | generics | 0.1.0 | 0.1.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/generics | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/generics | FALSE | FALSE | 2020-10-31 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| GenomeInfoDb | GenomeInfoDb | 1.26.2 | 1.26.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomeInfoDb | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomeInfoDb | TRUE | FALSE | 2020-12-08 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| GenomeInfoDbData | GenomeInfoDbData | 1.2.4 | 1.2.4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomeInfoDbData | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomeInfoDbData | FALSE | FALSE | 2020-11-16 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| GenomicAlignments | GenomicAlignments | 1.26.0 | 1.26.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomicAlignments | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomicAlignments | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| GenomicFeatures | GenomicFeatures | 1.42.1 | 1.42.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomicFeatures | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomicFeatures | TRUE | FALSE | 2020-11-11 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| GenomicRanges | GenomicRanges | 1.42.0 | 1.42.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomicRanges | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GenomicRanges | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| GEOquery | GEOquery | 2.58.0 | 2.58.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GEOquery | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GEOquery | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| GetoptLong | GetoptLong | 1.0.5 | 1.0.5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GetoptLong | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GetoptLong | FALSE | FALSE | 2020-12-15 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ggplot2 | ggplot2 | 3.3.3 | 3.3.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ggplot2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ggplot2 | TRUE | FALSE | 2020-12-30 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ggpubr | ggpubr | 0.4.0 | 0.4.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ggpubr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ggpubr | TRUE | FALSE | 2020-06-27 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ggrepel | ggrepel | 0.9.1 | 0.9.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ggrepel | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ggrepel | TRUE | FALSE | 2021-01-15 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ggsignif | ggsignif | 0.6.0 | 0.6.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ggsignif | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ggsignif | TRUE | FALSE | 2019-08-08 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| GlobalOptions | GlobalOptions | 0.1.2 | 0.1.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GlobalOptions | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GlobalOptions | FALSE | FALSE | 2020-06-10 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| glue | glue | 1.4.2 | 1.4.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/glue | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/glue | FALSE | FALSE | 2020-08-27 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| GO.db | GO.db | 3.12.1 | 3.12.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GO.db | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/GO.db | FALSE | FALSE | 2020-11-16 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| gridExtra | gridExtra | 2.3 | 2.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/gridExtra | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/gridExtra | TRUE | FALSE | 2017-09-09 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| gtable | gtable | 0.3.0 | 0.3.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/gtable | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/gtable | FALSE | FALSE | 2019-03-25 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| gtools | gtools | 3.8.2 | 3.8.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/gtools | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/gtools | TRUE | FALSE | 2020-03-31 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Gviz | Gviz | 1.34.0 | 1.34.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Gviz | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Gviz | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Haplin | Haplin | 7.2.3 | 7.2.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Haplin | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Haplin | TRUE | FALSE | 2020-09-07 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| haven | haven | 2.3.1 | 2.3.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/haven | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/haven | FALSE | FALSE | 2020-06-01 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| HDF5Array | HDF5Array | 1.18.0 | 1.18.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/HDF5Array | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/HDF5Array | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| highr | highr | 0.8 | 0.8 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/highr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/highr | FALSE | FALSE | 2019-03-20 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Hmisc | Hmisc | 4.4.2 | 4.4-2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Hmisc | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Hmisc | TRUE | FALSE | 2020-11-29 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| hms | hms | 1.0.0 | 1.0.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/hms | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/hms | FALSE | FALSE | 2021-01-13 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| htmlTable | htmlTable | 2.1.0 | 2.1.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/htmlTable | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/htmlTable | FALSE | FALSE | 2020-09-16 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| htmltools | htmltools | 0.5.1 | 0.5.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/htmltools | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/htmltools | FALSE | FALSE | 2021-01-12 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| htmlwidgets | htmlwidgets | 1.5.3 | 1.5.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/htmlwidgets | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/htmlwidgets | FALSE | FALSE | 2020-12-10 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| httpuv | httpuv | 1.5.5 | 1.5.5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/httpuv | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/httpuv | FALSE | FALSE | 2021-01-13 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| httr | httr | 1.4.2 | 1.4.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/httr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/httr | FALSE | FALSE | 2020-07-20 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| IlluminaHumanMethylation450kanno.ilmn12.hg19 | IlluminaHumanMethylation450kanno.ilmn12.hg19 | 0.6.0 | 0.6.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylation450kanno.ilmn12.hg19 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylation450kanno.ilmn12.hg19 | TRUE | FALSE | 2020-11-10 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| IlluminaHumanMethylation450kmanifest | IlluminaHumanMethylation450kmanifest | 0.4.0 | 0.4.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylation450kmanifest | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylation450kmanifest | TRUE | FALSE | 2020-05-19 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| IlluminaHumanMethylationEPICanno.ilm10b4.hg19 | IlluminaHumanMethylationEPICanno.ilm10b4.hg19 | 0.6.0 | 0.6.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylationEPICanno.ilm10b4.hg19 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylationEPICanno.ilm10b4.hg19 | TRUE | FALSE | 2020-05-19 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| IlluminaHumanMethylationEPICanno.ilm10b5.hg38 | IlluminaHumanMethylationEPICanno.ilm10b5.hg38 | 0.0.1 | 0.0.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylationEPICanno.ilm10b5.hg38 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylationEPICanno.ilm10b5.hg38 | TRUE | FALSE | 2020-11-06 | Github (achilleasNP/IlluminaHumanMethylationEPICanno.ilm10b5.hg38@3db0691) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| IlluminaHumanMethylationEPICmanifest | IlluminaHumanMethylationEPICmanifest | 0.3.0 | 0.3.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylationEPICmanifest | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IlluminaHumanMethylationEPICmanifest | TRUE | FALSE | 2020-11-16 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| illuminaio | illuminaio | 0.32.0 | 0.32.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/illuminaio | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/illuminaio | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| interactiveDisplayBase | interactiveDisplayBase | 1.28.0 | 1.28.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/interactiveDisplayBase | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/interactiveDisplayBase | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| IRanges | IRanges | 2.24.1 | 2.24.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IRanges | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/IRanges | TRUE | FALSE | 2020-12-12 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| iterators | iterators | 1.0.13 | 1.0.13 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/iterators | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/iterators | TRUE | FALSE | 2020-10-15 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| jpeg | jpeg | 0.1.8.1 | 0.1-8.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/jpeg | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/jpeg | FALSE | FALSE | 2019-10-24 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| jsonlite | jsonlite | 1.7.2 | 1.7.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/jsonlite | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/jsonlite | FALSE | FALSE | 2020-12-09 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| kableExtra | kableExtra | 1.3.1 | 1.3.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/kableExtra | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/kableExtra | TRUE | FALSE | 2020-10-22 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| knitr | knitr | 1.30 | 1.30 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/knitr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/knitr | TRUE | FALSE | 2020-09-22 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| labeling | labeling | 0.4.2 | 0.4.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/labeling | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/labeling | FALSE | FALSE | 2020-10-20 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| later | later | 1.1.0.1 | 1.1.0.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/later | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/later | FALSE | FALSE | 2020-06-05 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| lattice | lattice | 0.20.41 | 0.20-41 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/lattice | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/lattice | TRUE | FALSE | 2020-04-02 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| latticeExtra | latticeExtra | 0.6.29 | 0.6-29 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/latticeExtra | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/latticeExtra | FALSE | FALSE | 2019-12-19 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| lazyeval | lazyeval | 0.2.2 | 0.2.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/lazyeval | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/lazyeval | FALSE | FALSE | 2019-03-15 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| lifecycle | lifecycle | 0.2.0 | 0.2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/lifecycle | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/lifecycle | FALSE | FALSE | 2020-03-06 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| limma | limma | 3.46.0 | 3.46.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/limma | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/limma | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| locfit | locfit | 1.5.9.4 | 1.5-9.4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/locfit | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/locfit | TRUE | FALSE | 2020-03-25 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| lubridate | lubridate | 1.7.9.2 | 1.7.9.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/lubridate | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/lubridate | FALSE | FALSE | 2020-11-13 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| magrittr | magrittr | 2.0.1 | 2.0.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/magrittr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/magrittr | TRUE | FALSE | 2020-11-17 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| MASS | MASS | 7.3.53 | 7.3-53 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/MASS | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/MASS | TRUE | FALSE | 2020-09-09 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Matrix | Matrix | 1.3.2 | 1.3-2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Matrix | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Matrix | FALSE | FALSE | 2021-01-06 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| MatrixGenerics | MatrixGenerics | 1.2.0 | 1.2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/MatrixGenerics | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/MatrixGenerics | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| matrixStats | matrixStats | 0.57.0 | 0.57.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/matrixStats | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/matrixStats | TRUE | FALSE | 2020-09-25 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| mclust | mclust | 5.4.7 | 5.4.7 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/mclust | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/mclust | FALSE | FALSE | 2020-11-20 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| memoise | memoise | 1.1.0 | 1.1.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/memoise | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/memoise | FALSE | FALSE | 2017-04-21 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| MethylToSNP | MethylToSNP | 0.99.0 | 0.99.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/MethylToSNP | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/MethylToSNP | TRUE | FALSE | 2020-11-06 | Github (elnitskilab/MethylToSNP@92a4282) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| mgcv | mgcv | 1.8.33 | 1.8-33 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/mgcv | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/mgcv | FALSE | FALSE | 2020-08-27 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| mime | mime | 0.9 | 0.9 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/mime | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/mime | FALSE | FALSE | 2020-02-04 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| minfi | minfi | 1.36.0 | 1.36.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/minfi | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/minfi | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| missMethyl | missMethyl | 1.24.0 | 1.24.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/missMethyl | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/missMethyl | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| modelr | modelr | 0.1.8 | 0.1.8 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/modelr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/modelr | FALSE | FALSE | 2020-05-19 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| multtest | multtest | 2.46.0 | 2.46.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/multtest | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/multtest | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| munsell | munsell | 0.5.0 | 0.5.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/munsell | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/munsell | FALSE | FALSE | 2018-06-12 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| nlme | nlme | 3.1.151 | 3.1-151 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/nlme | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/nlme | FALSE | FALSE | 2020-12-10 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| nnet | nnet | 7.3.14 | 7.3-14 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/nnet | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/nnet | FALSE | FALSE | 2020-04-26 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| nor1mix | nor1mix | 1.3.0 | 1.3-0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/nor1mix | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/nor1mix | FALSE | FALSE | 2019-06-13 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| openssl | openssl | 1.4.3 | 1.4.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/openssl | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/openssl | FALSE | FALSE | 2020-09-18 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| openxlsx | openxlsx | 4.2.3 | 4.2.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/openxlsx | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/openxlsx | TRUE | FALSE | 2020-10-27 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| org.Hs.eg.db | org.Hs.eg.db | 3.12.0 | 3.12.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/org.Hs.eg.db | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/org.Hs.eg.db | FALSE | FALSE | 2020-11-16 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| pacman | pacman | 0.5.1 | 0.5.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pacman | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pacman | TRUE | FALSE | 2019-03-11 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| permute | permute | 0.9.5 | 0.9-5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/permute | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/permute | FALSE | FALSE | 2019-03-12 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| pheatmap | pheatmap | 1.0.12 | 1.0.12 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pheatmap | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pheatmap | TRUE | FALSE | 2019-01-04 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| pillar | pillar | 1.4.7 | 1.4.7 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pillar | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pillar | FALSE | FALSE | 2020-11-20 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| pkgbuild | pkgbuild | 1.2.0 | 1.2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pkgbuild | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pkgbuild | FALSE | FALSE | 2020-12-15 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| pkgconfig | pkgconfig | 2.0.3 | 2.0.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pkgconfig | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pkgconfig | FALSE | FALSE | 2019-09-22 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| pkgload | pkgload | 1.1.0 | 1.1.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pkgload | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/pkgload | FALSE | FALSE | 2020-05-29 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| plotly | plotly | 4.9.3 | 4.9.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plotly | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plotly | TRUE | FALSE | 2021-01-10 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| plyr | plyr | 1.8.6 | 1.8.6 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plyr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/plyr | TRUE | FALSE | 2020-03-03 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| png | png | 0.1.7 | 0.1-7 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/png | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/png | FALSE | FALSE | 2013-12-03 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| preprocessCore | preprocessCore | 1.52.1 | 1.52.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/preprocessCore | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/preprocessCore | FALSE | FALSE | 2021-01-08 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| prettyunits | prettyunits | 1.1.1 | 1.1.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/prettyunits | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/prettyunits | FALSE | FALSE | 2020-01-24 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| processx | processx | 3.4.5 | 3.4.5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/processx | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/processx | FALSE | FALSE | 2020-11-30 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| progress | progress | 1.2.2 | 1.2.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/progress | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/progress | FALSE | FALSE | 2019-05-16 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| promises | promises | 1.1.1 | 1.1.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/promises | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/promises | FALSE | FALSE | 2020-06-09 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ProtGenerics | ProtGenerics | 1.22.0 | 1.22.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ProtGenerics | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ProtGenerics | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| ps | ps | 1.5.0 | 1.5.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ps | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/ps | FALSE | FALSE | 2020-12-05 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| purrr | purrr | 0.3.4 | 0.3.4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/purrr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/purrr | TRUE | FALSE | 2020-04-17 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| quadprog | quadprog | 1.5.8 | 1.5-8 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/quadprog | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/quadprog | FALSE | FALSE | 2019-11-20 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| R.methodsS3 | R.methodsS3 | 1.8.1 | 1.8.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/R.methodsS3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/R.methodsS3 | FALSE | FALSE | 2020-08-26 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| R.oo | R.oo | 1.24.0 | 1.24.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/R.oo | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/R.oo | FALSE | FALSE | 2020-08-26 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| R.utils | R.utils | 2.10.1 | 2.10.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/R.utils | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/R.utils | FALSE | FALSE | 2020-08-26 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| R6 | R6 | 2.5.0 | 2.5.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/R6 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/R6 | FALSE | FALSE | 2020-10-28 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rappdirs | rappdirs | 0.3.1 | 0.3.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rappdirs | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rappdirs | FALSE | FALSE | 2016-03-28 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rbibutils | rbibutils | 2.0 | 2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rbibutils | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rbibutils | FALSE | FALSE | 2020-11-18 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| RColorBrewer | RColorBrewer | 1.1.2 | 1.1-2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RColorBrewer | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RColorBrewer | TRUE | FALSE | 2014-12-07 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Rcpp | Rcpp | 1.0.6 | 1.0.6 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rcpp | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rcpp | FALSE | FALSE | 2021-01-15 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| RCurl | RCurl | 1.98.1.2 | 1.98-1.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RCurl | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RCurl | FALSE | FALSE | 2020-04-18 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Rdpack | Rdpack | 2.1 | 2.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rdpack | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rdpack | FALSE | FALSE | 2020-11-09 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| readr | readr | 1.4.0 | 1.4.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/readr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/readr | TRUE | FALSE | 2020-10-05 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| readxl | readxl | 1.3.1 | 1.3.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/readxl | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/readxl | TRUE | FALSE | 2019-03-13 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| remotes | remotes | 2.2.0 | 2.2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/remotes | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/remotes | FALSE | FALSE | 2020-07-21 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| reprex | reprex | 0.3.0 | 0.3.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/reprex | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/reprex | FALSE | FALSE | 2019-05-16 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| reshape | reshape | 0.8.8 | 0.8.8 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/reshape | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/reshape | FALSE | FALSE | 2018-10-23 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| reshape2 | reshape2 | 1.4.4 | 1.4.4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/reshape2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/reshape2 | TRUE | FALSE | 2020-04-09 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rhdf5 | rhdf5 | 2.34.0 | 2.34.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rhdf5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rhdf5 | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rhdf5filters | rhdf5filters | 1.2.0 | 1.2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rhdf5filters | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rhdf5filters | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Rhdf5lib | Rhdf5lib | 1.12.0 | 1.12.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rhdf5lib | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rhdf5lib | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rio | rio | 0.5.16 | 0.5.16 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rio | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rio | FALSE | FALSE | 2018-11-26 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rjson | rjson | 0.2.20 | 0.2.20 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rjson | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rjson | FALSE | FALSE | 2018-06-08 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rlang | rlang | 0.4.10 | 0.4.10 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rlang | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rlang | FALSE | FALSE | 2020-12-30 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rmarkdown | rmarkdown | 2.6 | 2.6 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rmarkdown | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rmarkdown | FALSE | FALSE | 2020-12-14 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rngtools | rngtools | 1.5 | 1.5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rngtools | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rngtools | FALSE | FALSE | 2020-01-23 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rpart | rpart | 4.1.15 | 4.1-15 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rpart | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rpart | FALSE | FALSE | 2019-04-12 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rprojroot | rprojroot | 2.0.2 | 2.0.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rprojroot | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rprojroot | FALSE | FALSE | 2020-11-15 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| Rsamtools | Rsamtools | 2.6.0 | 2.6.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rsamtools | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rsamtools | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| RSQLite | RSQLite | 2.2.2 | 2.2.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RSQLite | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RSQLite | FALSE | FALSE | 2021-01-08 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rstatix | rstatix | 0.6.0 | 0.6.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstatix | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstatix | FALSE | FALSE | 2020-06-18 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rstudioapi | rstudioapi | 0.13 | 0.13 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstudioapi | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstudioapi | FALSE | FALSE | 2020-11-12 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rtracklayer | rtracklayer | 1.50.0 | 1.50.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rtracklayer | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rtracklayer | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| rvest | rvest | 0.3.6 | 0.3.6 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rvest | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rvest | FALSE | FALSE | 2020-07-25 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| S4Vectors | S4Vectors | 0.28.1 | 0.28.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/S4Vectors | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/S4Vectors | TRUE | FALSE | 2020-12-09 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| scales | scales | 1.1.1 | 1.1.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/scales | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/scales | FALSE | FALSE | 2020-05-11 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| scrime | scrime | 1.3.5 | 1.3.5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/scrime | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/scrime | FALSE | FALSE | 2018-12-01 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| sessioninfo | sessioninfo | 1.1.1 | 1.1.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/sessioninfo | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/sessioninfo | FALSE | FALSE | 2018-11-05 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| shape | shape | 1.4.5 | 1.4.5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/shape | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/shape | FALSE | FALSE | 2020-09-13 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| shiny | shiny | 1.5.0 | 1.5.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/shiny | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/shiny | TRUE | FALSE | 2020-06-23 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| shinyMethyl | shinyMethyl | 1.26.0 | 1.26.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/shinyMethyl | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/shinyMethyl | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| siggenes | siggenes | 1.64.0 | 1.64.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/siggenes | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/siggenes | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| sparseMatrixStats | sparseMatrixStats | 1.2.0 | 1.2.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/sparseMatrixStats | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/sparseMatrixStats | FALSE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| statmod | statmod | 1.4.35 | 1.4.35 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/statmod | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/statmod | FALSE | FALSE | 2020-10-19 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| stringi | stringi | 1.5.3 | 1.5.3 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/stringi | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/stringi | FALSE | FALSE | 2020-09-09 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| stringr | stringr | 1.4.0 | 1.4.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/stringr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/stringr | TRUE | FALSE | 2019-02-10 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| SummarizedExperiment | SummarizedExperiment | 1.20.0 | 1.20.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/SummarizedExperiment | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/SummarizedExperiment | TRUE | FALSE | 2020-10-27 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| survival | survival | 3.2.7 | 3.2-7 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/survival | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/survival | TRUE | FALSE | 2020-09-28 | CRAN (R 4.0.3) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| testthat | testthat | 3.0.1 | 3.0.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/testthat | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/testthat | FALSE | FALSE | 2020-12-17 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| tibble | tibble | 3.0.5 | 3.0.5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/tibble | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/tibble | TRUE | FALSE | 2021-01-15 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| tidyr | tidyr | 1.1.2 | 1.1.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/tidyr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/tidyr | TRUE | FALSE | 2020-08-27 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| tidyselect | tidyselect | 1.1.0 | 1.1.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/tidyselect | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/tidyselect | FALSE | FALSE | 2020-05-11 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| tidyverse | tidyverse | 1.3.0 | 1.3.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/tidyverse | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/tidyverse | TRUE | FALSE | 2019-11-21 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| usethis | usethis | 2.0.0 | 2.0.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/usethis | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/usethis | FALSE | FALSE | 2020-12-10 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| VariantAnnotation | VariantAnnotation | 1.36.0 | 1.36.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/VariantAnnotation | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/VariantAnnotation | FALSE | FALSE | 2020-10-28 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| vctrs | vctrs | 0.3.6 | 0.3.6 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/vctrs | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/vctrs | FALSE | FALSE | 2020-12-17 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| viridis | viridis | 0.5.1 | 0.5.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/viridis | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/viridis | FALSE | FALSE | 2018-03-29 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| viridisLite | viridisLite | 0.3.0 | 0.3.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/viridisLite | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/viridisLite | FALSE | FALSE | 2018-02-01 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| webshot | webshot | 0.5.2 | 0.5.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/webshot | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/webshot | FALSE | FALSE | 2019-11-22 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| wesanderson | wesanderson | 0.3.6 | 0.3.6 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/wesanderson | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/wesanderson | TRUE | FALSE | 2018-04-20 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| withr | withr | 2.4.0 | 2.4.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/withr | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/withr | FALSE | FALSE | 2021-01-16 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| xfun | xfun | 0.20 | 0.20 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/xfun | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/xfun | FALSE | FALSE | 2021-01-06 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| XML | XML | 3.99.0.5 | 3.99-0.5 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/XML | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/XML | FALSE | FALSE | 2020-07-23 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| xml2 | xml2 | 1.3.2 | 1.3.2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/xml2 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/xml2 | FALSE | FALSE | 2020-04-23 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| xtable | xtable | 1.8.4 | 1.8-4 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/xtable | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/xtable | FALSE | FALSE | 2019-04-21 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| XVector | XVector | 0.30.0 | 0.30.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/XVector | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/XVector | TRUE | FALSE | 2020-10-28 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| yaml | yaml | 2.2.1 | 2.2.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/yaml | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/yaml | FALSE | FALSE | 2020-02-01 | CRAN (R 4.0.0) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| zip | zip | 2.1.1 | 2.1.1 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/zip | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/zip | FALSE | FALSE | 2020-08-27 | CRAN (R 4.0.2) | /Library/Frameworks/R.framework/Versions/4.0/Resources/library | |
| zlibbioc | zlibbioc | 1.36.0 | 1.36.0 | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/zlibbioc | /Library/Frameworks/R.framework/Versions/4.0/Resources/library/zlibbioc | FALSE | FALSE | 2020-10-28 | Bioconductor | /Library/Frameworks/R.framework/Versions/4.0/Resources/library |